Unsolved Basic to learn to be a good developer
-
Dear all,
I have been developing application using QT for more than a year. Getting good with C++ day by day.....Happy about it....
But i would like to know how Compiler , Debugger and OS works to create application as a whole...
I would like to get some expertise how to start learning them, which to start first and good study material for it...My Bio data,
I am basically a electrical student, working in programming language ..so i have no prior depth knowledge on computer science.Any guidance is appreciable .......
Also i would like to know good materials to study data structure and algorithms
-
Hi
You can use something like
https://en.wikipedia.org/wiki/Book:Compiler_construction
And see the differrent phases and then google some of them to dive into it.
There are many books on how compilers works and its pretty technical
.
However, there are many toolchains and systems so often a developer will get to know one
really well and use that ( or pr platform) . Knowing how the stuff overall works do help but often you also need
to read the actual documentation for the toolchain to be able to use it.If you want to be a better developer overall. I can highly recommend
https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670 -
@mrjj ... good advice and reference! An oldy but a goody is "Writing Solid Code." I used to get my junior engineers to read it as it sets the tone for future development in projects as well as solid techniques for making bullet-proof code.
One point it always made... Never use the toolset or assembly to prove why you need to do something. So, learning the toolchain may be fine, but it is a small part of the problem that can change.
"Numerical Recipes" by Press, Tuekolsky, Vetterling, and Flannery is a good book for numeric algorithms,
"Programming: Principles and Practice Using C++" by Bjarne Stroustrup is great for building up your modern C++ skills.As for data structures, it all depends what you are trying to do. General stuff like lists, maps, vectors are all taken care of. Just learn their usage. Other than that, figure what your problem is and focus on the best data structures for that. Spending the time doing the focused research will add to your knowledge base over time.
I am an Electrical System's Engineer and I do automation and guidance using multiple sensors and controllers. Numerical stuff is the most important for that and data structures are tools for collecting. When it comes to surface modeling, I research and focus the algorithms based on either fast query, fast display, memory usage, etc.
Anyway, good luck.
-
Hi! My favorite starting point for this topic is "Compiler Construction" by Niklaus Wirth. You can get it for free: http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf.
-
Thanks @mrjj , @Buckwheat and @Wieland for ur suggestions....