How to I improve my real world programming skills?
1 15 Jun 2015 04:15 by u/minionslave
I just go out of college for computer science. I have a great knowledge of all the essentials programming concepts. Which means I could pick up any programming language syntax within a few days. While I'm applying for jobs, I wanted to use my free time for something useful
My issue is, I want to apply this knowledge, I want to build a project, but I don't know how to get started. My favorite languages so far are C# and PHP. Do you guys have any advice?
Thanks
1 comment
2 u/dchem 17 Jun 2015 00:24
Pick a project you want to get done in few different time periods:
Then start setting time aside for programming a little everyday to finish up a project to the point you'd consider 1.0. Move on to next project, and come back and improve the past projects as needed. Make sure you are writing the code with intent to be read and understood by someone else. Make sure you are committing them to github or other places where you are subject to public scrutiny.
C# and PHP is a fine starting point, if you are already familiar with it. I would also suggest experimenting with a few more scripting languages, like Perl. Python is a perennial favorite and you can't go wrong with it.
Picking up a functional language and experimenting with it will give you broader exposure than your run of the mill programmers. Just like you can't be a Wine critic drinking only one kind, software engineers should also try to extend their reach beyond the comfort zone.
Learning about concurrency, parallel computing, and asynchrony will put you way ahead of the curve. Web programming in general deals a lot with asynchronous event handling, so javascript is a good lead in for that. Learning the nuances of concurrency in different programming languages and frameworks also help, for an example, Node.js's approach to concurrency is very very different than Go's.
Learning about Linux fundamentals will help immensely. In particular, learning about UNIX philosophy, what kind of tools are available in Linux environment, and in general being comfortable with things like sed, bash, etc. I would recommend a book titled "How Linux Works: What Every Superuser Should Know" by Brian Ward.
I hope this helped. Best of luck.