Employees who are involved in software development, both programmers and non-programmers needs to stay up to day with their respective fields. In this post I will talk about how I stay up to day, in the fields I like and find most relevant on a daily basis. These practices can also be applied in other software development fields.

So first let me state the fields which I focus on, when staying up to date:

  • Parallel Programming and Computation
  • C/C++ Programming
  • Ruby Programming
  • Open Source in general
  • Linux
  • OpenBSD
  • Fedora
  • LLVM
  • Programming Languages
  • Emacs

So there are a few additional fields, but these are the one I primarily focuses on. The reason I mentioned the fields are so you know where to look for information about these specific fields. Now let us continue with what I do, to stay up to date.

Reddit

Most people know the web site Reddit[1] and use it to find funny posts and stuff like that. However, a lot of people does not know that there are a lot of serious sub-reddits, which are pages dedicated to a certain topic. Among these sub-reddits are a lot focused on software development, programming and *NIX, so right down any software developers ally. The reason I will recommend these to stay up to date is, that for instance /r/cpp[2] continuously contains information about what is currently being discussed to become a part of the C++ standard, what as been accepted, and what has been dismissed. Giving a good ground for following the development of C++. Furthermore, there are also a lot of open source developers whom post on reddit when a new version of library is available or if a new library has been published. This do not only matter for C++, but for almost any programming languages you can think of. Some of my favourite language sub-reddits are:

There also exists sub-reddits for the remainder of the topics in the list above, and I use them all to gain new information and stay up to date with any given topic. I further more recommend, the following sub-reddits:

  • /r/programming[5]
  • /r/softwaredevelopment [6]
  • /r/emacs [7]
  • /r/linux [8]

Some might wonder, why I have not recommended /r/bsd[9] and /r/openbsd[10], the reason for this is that I fairly reason was made aware of their existence and do not feel I can give a proper recommendation yet. However, I will say that so far, a month in, I think that the content is of a high quality in general and the tone is very sober.

Mailing lists and newsletters

What are they not dead yet? NO! Mailing list may be primarily from the prior century, but they are fantastic. First off you can get help through mailing list and by reading others question you can even get smarter and more up to date with techniques you might even not know existed. Furthermore NEWSLETTERS the king and well of new information, where the creators of a programming languages, a technique, a compiler, a library, or something fifth, explains what is new, what is old, what is removed and so on. This often gives an in-depth understanding of the changes which occur to a project you use. Often newsletters also provides links to blog post or white papers which goes more in-depth with the changes allows you to get a very update view of what has been done. Therefore I use these two options to get new information.

I primarily uses newsletters for:

  • fedora
  • linux
  • llvm

Bonus info mailing lists also sometimes contains information about meet up opportunities which you will not find on any webpage.

Blog posts

Blog posts are close to the holy grail of getting new information for a software developer. This is due to two reasons: Firstly technical blogs by companies and individual project developers. These blogs tents to go in to detail about a specific topic and covers what is new and how to use the new stuff or may be cover a feature in-depth which you had never heard of. Therefore these post really expands your knowledge of the project and teaches you something new.

Secondly are developer blogs, these are not by developers developing a particular product, but using it in stead. This type of blogs have a tendency to be brutally honest, though coloured, and therefore gives a fantastic view of how good a product or technique is and by such informs you if it is worth you time.

So these two types of blog post are actually the reason I primarily recommend blog post and I find information about all topic via a blog post. I will, however, not recommend any specific blog or author, but rather say log on to feedly[11] and navigate the different RSS feeds for nerds, software development and programming to find those you find the best, did you know I provided an RSS feed?

Research papers, articles and technical reports

Now I know that most do not think that it is relevant for them to know the latest research, but it is, just accept it. Go read some research papers, it will give you a wink in the direction of where your field is going and what the next path will be. Of cause this is also often a bit harder to read and understand but I sincerely think, they are worth a read.

I predominately use google scholar[12] to find research resources.

Now I primarily uses these resources to find information about parallel programming and computation, and compile design. But there are tons of fantastic papers about almost any subject.

Youtube

Ah the magical world of youtube[13]. Youtube is a platform for distributing free videos to the masses, just in case you did not know that. Some companies, conference and developers have taken to youtube to share material about subjects, project, and products. Where they provided videos explain a topic and or a product and how to apply this in a real world scenario. A youtube channel I personally are very fond of is CppCon’s channel[14], where I find a lot of good stuff about C++. Again here I will not recommend a lot of specific channels, go look for your self it is awesome.

I hope this gave you a tool box on how to stay up to date with some of your favourite fields. So happy hacking.

-Lars Nielsen