Ask HN: How do I improve my programming/engineering skills
Hey HN. I've been lurking here for sometime now and have seen similar posts, usually with positive and helpful responses. So decided to see if you guys could help me too.
So a little background about me. I'm 23 years old and been living in Scandinavia for 3 years now.
I'm not one of those guys that have been programming since they started walking. I started programming about 3 years ago when I started Electronic and computer engineering. There I learned Java for 1 year, one course per semester. After that year I found out that a strictly engineering-focused education wasn't for me and that I didn't even like hardware stuff anyway! So I rebooted my bachelor degree in a cross-disciplinary education which included all kinds of topics, ranging from 3D modeling to making sounds in Max/MSP with a lot of focus on academic reports (around 100 pages for one semester, which I hate btw) and user testing, and programming courses sprinkled in-between.
Therein lies the problem, since the education is cross-disciplinary, maybe one third to half of the students aren't very or at all interested in programming and as a result the quality and the challenge of the programming courses have suffered. Since starting that education they have taught ActionScript, C++ and C#, each on it's own semester and no-one is close to proficient in any of them.
I do realize that no-one should be responsible for my education except me, therefore I started learning Python on my own last summer. I've only really played around with it, not doing anything serious with it. Started one or two Django sites, finished neither since I was in over my head wanting to implement very complex ideas. I have made one rather complete script to download Google Docs folders contents and compiling them to LaTeX for my reports, but it's neither very complex or impressive. I'm very interested in web development and want to get better.
I do agree that you learn most my actually doing, actually coding something and I have tried to find open source projects to participate in, but I cant seem to get into any of them due to me not understanding the whole program. Maybe I just haven't found a small enough program to get my feet wet. I'm also not making much head way with Project-Euler either, usually getting stuck on some math stuff. I read a lot of tech and code blogs about webdev, Python and programming to keep upto date.
I tried getting a job at some local startups hoping to get the chance to learn from great coders but, of course, no-one was interested in my underdeveloped skills.
I do like programming and trying to find solutions to problems but I seem to lack both ideas of a manageable size (maybe that's an idea for a web site? Practice programming ideas, ranked by "size" and only provide hints and no solutions.) or the skills to implement those that do pop up in my head...
I look at someone like Kenneth Reitz and I think to myself that I would like to become like him some day but I have no idea how to get there. I also wonder if it is worth it staying in university when so many hackers seem to do fine with out the degree. And I would have take a Master's degree to get anything out of my education since it's so broad.
Does anyone have advice how I can improve myself? Or should I just find another field to try to make it in?
Sorry for the long post and thanks for reading it.
If you lack ideas(totally normal) think of small problems in your daily routine that could be improved/fixed and do it.
Good luck, and don't give up, seriously. When you start getting rewarded for your work this is one of the most emotionally(and maybe even financially) remunerative jobs.