Skip to main content

Is it possible to become a decent programmer in 1-2 years?

 I’m still not a programmer myself, but I have learned programming since I was very young, so maybe I can contribute something to the discussion.

First of all, you have identified the skills that you lack. Good start. Anyway, 1–2 years can mean a lot or just a little depends on how much you spend on learning. If you spend 8 hours a day, that’s a lot.

So you’d improve your skills by this (you’ll find this list contains much more low-level skills than other answers):

  • Find something to code (that’s the hard part for me). If your CS club members can find the project with you, get help from them. If not just quit the club (because they are guiding you to a wrong direction).
  • Start coding. You may start from scratch or inherit some legacy code and/or some library.
  • Finish your program, and try to improve it, and fix the bugs.
  • Somehow YOU’LL HIT A WALL. Maybe you’re unable to solve a specific problem (the problem looks easy, but is actually very hard). Maybe you find your code not maintainable (too many bugs, too each to introduce bugs, and bugs too hard to fix). Maybe you find yourself repeating yourself a lot (it’s time to use functions and classes wisely). Maybe you forgot what you have written (you didn’t write good documentation and tests).
  • When you hit a wall, it’s time to read about software design, i.e. expressive naming, when to/not to comment, testing, design patterns, version control, etc. Books in refactoring is also helpful.
  • After the reflection, start another project. You’re better in software design now. You may continue to work with your current project, but your code is likely not maintainable.
  • Repeat the process several times (I guess 5 is enough)… and if possible try different parts of the “full-stack”, i.e. console, GUI, web, database, CLI, etc. And SOME of your programs should be written in a strongly typed language.
  • You’ll make a lot of mistakes. Don’t worry about this. Making mistakes makes you better, especially in software design.

Anyway I wouldn’t recommend you to join existing open-source projects right at the start. This is a nice thing to do (indeed very nice if someone can coach you during your work with the project), but big open-source projects has a high entry barrier. (I tried with Chromium myself, and found myself reading thousands of lines of code (and also C++ reference, coding style guides, etc.) before starting to write my first non-trivial patch.) DO join open-source project, but only after you acquire necessary skills.

Now for the algorithm part. My recommendation is to acquire solid math skills. And do learn about algorithms and data structures, since they helps a lot with your projects.

But don’t delve into these too far right at the beginning, because you need to improve your software design skills first. When you get decent software design skills, you’ll look at algorithm problems in a different light (especially if your CS don’t provide good OOP courses), and can learn about algorithms more thoroughly.

Last but not least, good English DOES matter, even if you are not writing any comment. That’s one of the things I’ve learned in Chromium project.

And finally, GL and HF with programming!

mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev mbilaldev

Comments

Popular posts from this blog

pengeairporttransfer

pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairporttransfer pengeairpo...

todayjobs

todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs todayjobs toda...

How does one become a great coder/programmer?

 I am presently figuring out how to program and my single objective, base up, is to do extraordinary things from the earliest starting point. I wouldn't state I'm an incredible coder or even great, however I would state I took in more in three days from this procedure than any book has ever educated me. This is the means by which I am figuring out how to program. In the event that there are mistakes in this post, pardon me, I am simply beginning to learn and I invite criticism of different types.  Above all else, you should peruse a book called Code: The Hidden Language of Computer Hardware and Software By Charles Petzold. This is the complete book (as I would like to think) on seeing how PCs work from bits as far as possible up to elevated level dialects and illustrations. Best part is that your grandma can comprehend and appreciate this book. Unquestionably an absolute necessity read to begin progressing nicely.  A while later you should:  Manufacture a 8-piece PC ...