Previously I wrote about how I learned programming. My history with programming.
So today, I would like to share with you what I learned so far as a programmer. Actually most of the lessons I learned in the past 2 years made me realize that I learned more in the past 2 years than many of the years before.
- Try to learn a new programming language every year
… or at least “dive deep” into learning all features of the language you already know right now
This is important. One of the things I learned this 2 years is that you have to learn something new every year in order to keep up to date. It doesn’t necessarily mastering a new language, but at least try it so that you will be able to expand your understanding of how to program things.
- Library can come and can go in less than one year…
But language usually lives much longer.
Usually this means that the library is not maintained anymore. This happens when there’s only one maintainer. This usually happened in Android where there are rapid changes from one version to another.
Language on the other hand usually have multiple contributors or maintainers. So they usually lived longer.
- Learn to learn quickly
This got to be the most important thing I have ever learned. The faster I learn, the more I will be able to create.
Learning quickly is probably one of the single biggest multiplier effect that I can have in finishing project I’m involved in.
- Try to know exactly what you don’t know…
So that you’ll be able to quickly find a solution for that.
When you are able to learn quickly, you will be able to know what you don’t know. And it become sort of a loop. You’ll be able to know what you want to look for in Google.
- It doesn’t matter if you don’t know algorithms…
But it doesn’t hurt to learn about it (because it might help you in the future).
This is important. Usually you don’t use algorithm in programming a system but if it’s something that will scale fast, your understanding of algorithm might be useful.
- Identify exactly what you’re weak at…
And see if you could try to fix your weakness in your understanding of software engineering.
In self-help world you will hear people talk about focus on your strength but in order to develop a technical skill, you need to identify exactly what you are weak at.
For me, I am weak at algorithm because I don’t have a formal engineering background. I come from an information field where I learned mostly about records and library.
- Break project down into manageable bits
To me, basically a project = big problem statement.
Sometimes you don’t need to do any programming if you have another way to solve that problem.
So you have to break it down into something that you understand. For instance if you want to make a simple archiving system, what do you need?
Obviously you would need a database. a way to create a record, to modify and delete it which is the standard CRUD thing to do.
So by breaking things down into smaller and smaller piece, you will be able to to code it and make the functions required to solve that big problem statement.
I guess that’s all for now. What I’ve learned so far in programming. Obviously I will have more things to learn in the future.
Until next time!
THE BIGGEST LESSON I LEARNED TODAY
Don’t forget to turn on your caching plugin and CDN. I submitted this blog post to Hacker News and this website can’t be accessed.
And I HOPE it won’t crash right after I wrote this. I hope! Haha.