

Ask HN: What  should I look at to broaden my programming knowledge? - markprovan

I&#x27;m currently studying towards my Honours degree in Software Engineering. My course is basically a CS degree with a mandatory 12 month placement.&lt;p&gt;I currently develop in Ruby, JS and Java and I&#x27;m looking to broaden my knowledge (languages, techniques and concepts).&lt;p&gt;What books&#x2F;languages would you say were important in shaping your career&#x2F;made you a better engineer?
======
gexla
Since you mentioned Ruby and JS I assume you are talking about web
applications. What I find interesting is that many web developers spend so
much time in building applications yet don't have any experience in doing the
things that actually make these things successful. Try building a simple
service that you can market. Try doing a bit of Facebook and Adwords ads (you
can get free coupons for starting out.) Look at the data and make changes to
those ads to make them more effective. Get users, get feedback. Who knows, you
might actually make some money at it.

Personally, I have have an internal clash between my geek side which wants to
learn new things and play with shiny toys vs my practical side which wants for
that time to be spent building something that is useful that I might be able
to sell. Then when I start to commit to building, I know that I need to resist
the urge to start coding and instead need to do work on validating the idea
and reaching potential customers. Then when it comes time to throw up a web
presence I need to resist breaking out the editors and frameworks and instead
just push the "install Wordpress" button or something similarly quick and
simple.

So, I would say, keep it practical. Learn what you need in the pursuit of
creating value rather than learning to code with something for the sake of
learning a different way to code something. I think you will find that there
is more to making you a good engineer than just writing better code. If
selling isn't your thing right now, then find an open source project to
contribute to. With the right project, not only will you provide needed help,
but you could also help boost your profile and attract notice of the people
you would be looking to for job.

When you only have 24 hours in a day (and much less of that to dedicate to
your craft) then it's best to get as much overlap as you can.

Oh, and go read through the endless other posts on Hacker News which have
asked the same question. There are some great threads out there with
information which won't be reproduced in this thread.

------
informatimago
If not already a mandatory reading, sicp.
[http://mitpress.mit.edu/sicp/](http://mitpress.mit.edu/sicp/)

------
Nanzikambe
To round out your abilities I'd suggest BASH and Python.

