Operating Systems, Programming and Programming Languages

Programming Notes for Professionals books. This site provides a rich set of free pdf books about a long list of programming topics (mainly programming languages)

An Open Source library containing a large variety of implementations of different algorithms, belonging to different categories and written in different languages.

An old site (first published in 1998) that is still updated today and contains a dictionary of algorithms, algorithmic techniques, data structures, archetypal problems, and related definitions.

An interesting site that provides a complete description and references of C++ and C languages. It also contains a couple of useful links, respectively a list of open source C++ libraries and a list of open source C libraries.

In spite of the old fashioned design style (which does not even try to hide the age of this website), the page is somehow still maintened today. It contains a huge amount of information about Linux OS (tutorials, help, documentation, on-line training, guides and links), available for free to all Linux users. When you are looking for something about Linux, especially if you don’t know exactly what, don’t forget to take a look here.

Coding Practice

An interesting link from GeeksForGeeks thet provides many solutions to common algorithm exercises (often with different methods). Very interesting and helpful to read.

Exercism is an open source projet that provides a free site with thousands of programming exercises in over 50 different languages, with different difficulty levels. Users can re-inforce their knowledge by practicing coding exercises and exploiting mentoring by experienced programmers. Everyone can contribute to exercism by donating money or even time (e.g. contributing to write or update exercises).

A simple web page where you can subscribe to a mailing list to receive every day a  coding problem.

A rather famous web site that provides many algorithms of different kinds and with different data structures. It allows to write code, run it directly within the portal and see the results. Some companies use it for their tests during job interviews.

This is an online arena where programmers can compete with each other in specific coding challenges.

A popular website for algorithm training. It offers articles, coding problems and interview questions. There is also a Premium subscription available with access to premium contents.

A collection of coding interview questions. There are also courses, coding problems and related solutions, and something more. Most of the material is accessible by subscription.

Articles, Tutorials and Books

Academia is a platform for sharing academic research. Academics have uploaded 28 million papers, and 67 million academics, professionals, and students read papers on Academia every month.

Google Scholar is a specialized search engine provided by Google. It indexes most peer-reviewed online academic journals and books, conference papers, theses and dissertations, preprints, abstracts, technical reports, and other scholarly literature, including court opinions and patents.

ResearchGate is a social networking site for scientists and researchers to share papers, ask and answer questions, and find collaborators. It provides free articles without the need for registration

Slideshare is a platform that provides online sharing of presentations, slides and other types of documents. Its purpose is summarized by its motto: “Discover. Share. Learn”. It is fully integrated with Linkedin.

An interesting article by Bjarne Stroustrup, the inventor of C++, published in the January 2012 issue of the IEEE Journal of Computer Science. In this publication, Stroustrup claims for more stringent correctness, reliability, efficiency, and maintainability requirements for a specific category of software, denoted as Infrastructure Software. Very interesting, even if a bit technical.

This paper, published on Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering (2017), presents a study of the runtime, memory usage and energy consumption of 27 well-known software languages when applied to a sample of 10 different programming problems, expressed in each of the languages. Some results are quite obvious (e.g. compiled languages are faster and “greener” than virtual machine languages and interpreted languages), but this paper presents experimental results which confirm this conclusion. Further, from an overall point of view the C language is the fastest and most energy efficient.

An interesting article by Tom Demarco, published in the December 2011 issue of IEEE Software, which provides a surprising simple explanation of the reason why software development projects are often late. Nice reading.

This article is an extract from the book “The mythical man-month” from the same author, published by Addison Wesley in 1975. It explains the pitfalls behind the man-month concept and tries to understand how can a project get to be a year late (to quote the author: simply one day at a time). Very interesting and still relevant after almost 50 years.

Learning Resources

Codecamy is a platform that offers a great variety of online courses about several programming languages and several arguments related to computer science, web development, data science, machine learning and so on. There are a lot of courses available through free subscription, and also a PRO subsciption with more resources.

Coursera works with universities and other organizations to offer online courses, certifications and degrees in a variety of subjects. Coursera offers full master’s degrees from approximately 150 universities (most from the United States). It also provides training for various certifications. Finally, it also offers online courses on various topics, some of which are completely free.

Udemy is a platform that allows instructors to build online courses on their preferred topics. It is very interesting for at least two reasons. First, it is a huge repository of a lot of courses about a variety of fields. Several courses are free, however those that are not are usually characterized by affordable prices. Second, everyone who has something interesting to teach, can publish his own course on the platform.

Tutorialspoint offers severel learning resources, such as tutorials, courses, e-books and also prime packs. Most of the material is not free, but the costs are often absolutely affordable.

Tutorials Dojo defines itself as the one stop Learning Portal for AWS and Other Technology-Related Topics. It offers online courses and e-boks especially on cloud technologies, with special focus on AWS, Azure and GCP.

GeeksForGeeks provide free tutorials, articles, live/online/classroom courses, coding competitions, webinars by industry experts and so on.

An interesting link from AWS that collects a lot of videos showing innovative architectural solutions on the AWS Cloud.

Other Interesting Web Sites

According to the home page, GitHub is the place “where the world builds software”. It is an onlinse service where you can share your source code and files and collaborate with different people.

CodeProject is a community of Software Developers joined together with certain common goals: to learn, to teach and to have fun. Members from all over the world come together to share code, tutorials and knowledge for free.

Medium is an open platform where over 100 million readers come to find insightful and dynamic thinking. Anyone can write on Medium. It is a place where independent writers can write, read, and connect with millions of readers.

It is supported by Gitconnected and can be used by programmers to share experiences and lessons learned about software development, tech, startups, and engineering.

Andy Brice’s Personal Web Site. It contains thoughts, advices, articles, links, books and other stuff that might be interesting for those who aim to write successful software products.