Ask HN: what are the essential courses to became good programmer?
6 comments
The Structure and Interperetation of Computer Programs will teach you to think more clearly about the fundamentals of computation and programming. A free PDF is here: http://web.mit.edu/alexmv/6.S184/sicp.pdf
It is foundational though: you won't likely write lisp in real life.
Good books to read about practical software engineering are sold here: https://pragprog.com/ I'd start with The Pragmatic Programmer.
By copy-pasting things, you've gotten yourself into a habit of just banging things until they work. Now, you should approach things from a scientific prospective: try to understand why they work, then write something to test that understanding. Build coherent and clear mental models.
Good books to read about practical software engineering are sold here: https://pragprog.com/ I'd start with The Pragmatic Programmer.
By copy-pasting things, you've gotten yourself into a habit of just banging things until they work. Now, you should approach things from a scientific prospective: try to understand why they work, then write something to test that understanding. Build coherent and clear mental models.
This is definitely not the best approach. But when I am way out of my depth, the first place I look is at degree requirements for that area of expertise (from looking at a couple university websites) and then I find the textbooks used in those courses or searching online under those subject areas to get closer to the information I am actually looking for.
One of the biggest problems in learning something radically different is knowing what it is you don't know. A solid background will give you plenty of hints, and just looking at tables of contents can help you quickly get to the good stuff if you aren't looking for a solid background.
One of the biggest problems in learning something radically different is knowing what it is you don't know. A solid background will give you plenty of hints, and just looking at tables of contents can help you quickly get to the good stuff if you aren't looking for a solid background.
Writing code is not about remembering algorithms. Its about finding the most efficient way to perform a task. If someone on SO has a good solution, use it. Good doctors and engineers consult reference material to come up with the best course of action in any situation.
Like a3voices said... Build real world projects. Familiarize yourself with the concepts of business such as inventory, transaction and event management. So you will better understand how to help your clients.
In the end there are a lot of roads to Rome... but if you don't understand why your client needs to get to Rome you'll be of no use to anyone.
Like a3voices said... Build real world projects. Familiarize yourself with the concepts of business such as inventory, transaction and event management. So you will better understand how to help your clients.
In the end there are a lot of roads to Rome... but if you don't understand why your client needs to get to Rome you'll be of no use to anyone.
Part of understanding what the most efficient way to perform a task is, comes from understanding the optimizations which have already become commonplace.
What you say is true, but it's not either/or. Knowing how to implement something besides quicksort is important as well - the algorithms matter because they represent paths to efficiency. How can you judge what a good solution on SO even is unless you understand what you're looking at at more than a superficial level?
What you say is true, but it's not either/or. Knowing how to implement something besides quicksort is important as well - the algorithms matter because they represent paths to efficiency. How can you judge what a good solution on SO even is unless you understand what you're looking at at more than a superficial level?
> Writing code is not about remembering algorithms.
Being good at algorithms and data structures isn't about memorizing them.
Being good at algorithms and data structures isn't about memorizing them.
The only way to be a good programmer is to work on lots of projects.
Not to disparage the value of experience, but I know a metric ton of programmers with years of experience and dozens of projects under their belt who write, day in and day out, shit code. I think there's more to being good than just cranking it out.
I don't disagree with you, but I also think cranking it out is a very, very fundamental part of the process.
You can't be a great coder without writing anything.
You can't be a great coder without writing anything.
Said it true. Practice makes the man perfect!
Not a course, but what what Jennifer Dewalt did (180 websites in 180 days [0]) might help you..
http://jenniferdewalt.com/
http://jenniferdewalt.com/
Why is everyone so up in arms about what this girl did? How exactly are you going to learn algorithm analysis by building websites?
The phrase "up in arms" means angry, perhaps angry enough to reach for a weapon. I've never seen anyone angry about what she did.
Building websites won't work, but implementing algorithms in a book like CLRS http://mitpress.mit.edu/books/introduction-algorithms will.
Building websites won't work, but implementing algorithms in a book like CLRS http://mitpress.mit.edu/books/introduction-algorithms will.
Finally, today i realize that I am a bad programmer. I do coding in ruby. Since Ruby is a high-level language, I never have to worry about things which are going inside. I don't understand memory management, garbage collection and all sort of computer theory oriented concepts, I don't even understand why does BigO or SmallO (or whatever) matters (atleast in RoR apps). But I see some people are crazy towards it. And, they are brilliant although they don't know Ruby language more than me.
I am solo founder and developed my SASS application. I learned ruby and RoR, it took me 2 months to understand and write a web application in rail's way. I followed Michael Hartl book, Codeschool, Railscast. Now, it's about 1 year and i decent debugging and development knowledge.Sometimes I answer StackOverflow question and I'm earning a good reputation. But inside my heart I know I am a bad programmer. I searched almost all things in google and copy its answer. Writing code is the last thing I do. I know that is not good thing, but I am okay because of code quality. Moreover reinventing wheel is not a good thing. Not to forget, deadlines and pressure.
Now, I am ashamed. I need your help, please. Please tell me some roadmap or course which will enlighten me to all those things which computer programmer should know, it may be like encryption or statistics or operating system or whatever. I want to entrepreneur and developer, just like Marco Arment.
Thanks a lot.