I get this question fairly often from students who have just completed their first or second semester programming course at Brandeis and would like to continue on their own. How do I keep up with my field? How do you, Pito, Keep up?
It depends a lot on how you learn best. Some people learn by reading from a paper book, some by browsing through a pdf of a book (who knows where they find those!?), some watch videos and some just use google.
Congratulations!
Congratualations! You have picked a field that changes incredibly quickly. Whatever you learn today will be obsolete in the not too distant future. You have to invest in yourself, and work at keeping up with what's going on. More than one of you have asked me what my personal methodology is, so here is my system
Be in the general flow
You should regularly keep up with general news, however you do that. Whether you read the New York Times or the Boston Globe or Facebook or Hacker News or whatever. Remember that those sources give you the headline but rarely teach you anything.
Figure out what kinds of things fascinate you
Figure out what kinds of things fascinate you. You can’t keep up with everything so track your own emotional reactions as you get exposed to new ideas and concepts, in the paper, in class, on the radio, on facebook, whatever. Once you see something that’s interesting you need to decide to dig into it further, write some code, read some long articles.
Some of my favorite Podcasts
I listen to a lot of podcasts. Some are general and some are specific to a certain language or framework. Here are some of my current favorites:
Real Python and Python Bytes are both excellent sources of new Python tools, techniques and personalities
Stack Overflow Podcast, Maintainable, Software Engineering Radio are all excellent technical podcasts which don't focus on a particular language or framework but cover engineering, technology strategy, programming and many other great topics.
Ruby Remote, Code with Jason, Ruby Rogues and the Ruby on Rails Podcast are all top Ruby and Rails resources
Some of my favorite mailing lists and web sites
If a site has a mailing list, I prefer receiving a proactive notification through email than having to go back and check if there's something new. I will always forget to check!
My own blog (this one) has evolved and changed a lot over the years. These days it's a pure link blog, where I post technical links that I have found intriguing and fascinating.
Changelog Weekly covers the software and computer industry
Real Python has excellent Python tips and information
Ruby Weekly is a very short summary of everything that a Rubyist wants to keep up w
Python weekly is a similar newletter for Python
Some of my favorite Videos series and Youtube Channels
If you have the time and like learning by watching (and who doesn't) then these are some of the best video resources, some on Youtube (free) and others not free but worth the money.
Arjan Codes is an excellent Python series with beginner and advanced topics covered
Drifting Ruby is a Ruby specific resource that you can use for free, or ask me for a discount code
Some of my favorite professional books
Becoming a Technical Leader by Gerald Weinberg. For me this book is the best guide for a new development team lead or who is a first time manager of technical people.
Accelerate by Jez Humble and Gene Kim. The subtitle of this book is "Building and Scaling High Performing Technology Organizations ". It is a great summary of current thinking about Software Engineering processes and has the added advantage of being backed by research that seems credible.
Side Projects are crucial!
If your goal is to land a job in software (applies equally to industry, academia, government or non-profits) your resume only goes so far in demonstrating what you can do. An excellent option that has greater impact than people realize is to have a side project.
How do I find one?
My general advice first of all is to find a project or a purpose to your study. Don't just vacuum up (or try to) information from whatever source you choose because in my opinion that approach doesn't work very well.
Instead think of a project, it could be tiny, that would be fun to work on, and make that your focus. If you care about what you are doing you will be much more successful.
If you're into a sport - is there something there relating to scores, teams, leagues, practice, equipment, competitions, results, pictures, videos, are involved, scores, records, practice logs, equipment? Maybe your parents or other relatives do something that you want to build on? Maybe some application for their business or an app for their customers? You get the idea…
Don't do this by yourself - find a collaborator
My next general advice is to not to study or work alone. This may be difficult but it does make a big difference. Think about classmates, friends, or even people you meet online. Are they working on something that you can get interested in? You might be trying write a program to do something that interests you. You might be doing programming challenges together. Maybe one of you is learning one thing, say a new programming language, and the other one is learning a new editor, and you just compare notes and help each other solve problems.
When you don't study or work on your own, you have someone to help you keep focused, or to keep your motivation, or to pass the time with when you are stuck and to take a break. Obviously all this can be done if you are not in the same place, or even the same country.