There are tons and tons of resourses available for anyone who wants to become a (better) coder.
- Brick and mortar universities, like the one I went to, offer courses, B.Sc.’s and Masters.
- Coursera, free online courses from universities around the globe
- MIT has made materials from previous years courses available for free. Lots of materials including videos from lectures and past exams with solutions.
- Stack overflow is the go-to place if you have coding problems (after googling it, wich more often than not will return a bunch of links to stack overflow…)
- Project Euler provides you with hundreds of mathematical problems to solve using your coding skills.
- A gazzilion books on coding
And the list goes on.
The problem is that all this available information tends to mean very litle if you have no focus.
I already have a B.Sc. in mechatronics, including at least one year of coding in Assembler, C, C++ and Java. In addition to that I have taken university courses in Java, SQL and C++. I have been trying my hands at Python partly through solving Project Euler problems. Professionally I have worked with software development as a tester, configuration manager and project manager. But even though I have been coding I have not yet been a software developer/coder/code monkey, call it what you will.
I have two goals when it comes to coding.
Short term: Get an interesting job as a software developer (code monkey) and improve my skills while working with skilled and enthusiastic colleagues.
Long term: Become a über-super-wicked and bizarely talented coder with skills in languages, techniques, algorithms and processes both common and esotheric (while being humble and sharing my knowledge freely)
So what is the lens, apart from the goals themselves, that will focus my efforts to achieve these goals?
Well, my current plan of action is as follows:
- Break down the job ads for all interesting jobs and make a prioritized list of skills
- Read and analyze good blog posts about interviewing for a developer job (from both the interviewer and interviewee standpoint). Make a prioritized list of skills.
- Attack them in groups. Combine languages, techniques, OS etc and change it around to learn as much as possible in as litle time as possible, without getting sloppy or confused.
We’ll just have to see how things go, but one thing I’m sure of. Following this plan of action will increase my skills and know-how.
One mental sit-up at a time I will get closer and closer to my coding fitness goals.