I created this repository to share information and resources I find useful. I hope these can be helpful to software developers, engineers, or students, more generally anyone who is interested in software, regardless of their background. If you notice any mistakes, or if just you want to add something that belongs here, please let me know.
freeCodeCamp provides you with the tools to help get started with your career in software development, giving you access thousands of hours of video courses for free. It features a course with lessons and checkpoints, allowing you to check your progress. At the end of the course, you will have the opportunity to work on some projects and earn certifications you will be able to diplay on your LinkedIn profile.
Some of the things you can get:
- GitHub: free pro subscription
- NameCheap: 1 year domain name registration (.me TLD)
- Microsoft Azure: free access to some services and $100 in Azure credits
- Unity: free student plan
- Stripe: no fees for the first $1000 in revenue
Get free access to all JetBrains IDEs for personal use at school or at home.
Some of their most used IDEs are
- IntelliJ IDEA (Java)
- PyCharm (Python)
- WebStorm (web development)
By signing in with your university's email address, you can access many courses for free on LinkedIn.
Some courses you might find useful
The aim here is to demonstrate how to create a simple text editor using the Java's JFrame class, and attach some listeners to it: these will update the information displayed to the user, whenever they add or remove content from the text area, e.g. word count and position of the caret relative to the text.
The functionality of this application is very limited, to say the least, but my objective here is to show how to write code that is well organised and easy to read. Unit tests are not present; if you want to improve your Java skills, use this as an exercise.
I believe books are a shortcut to learn good practices of software development, such as writing clean code and how to write modular applications. Sure, you could learn those practices with time, by spending hours, months, or even years writing software, but we are lucky there are people who already went through that process and have decided to share their knowledge with us, so that we can learn more easily.
Here you will find books that I believe can be useful to software developers of all backgrounds. The links are to Amazon, but you can buy them wherever you prefer. If you decide to buy using these links, know that as an Amazon Associate I earn from qualifying purchases. I will use this revenue to buy more books, or resources, to review and share here.
This is the first book I read about software development. It taught me a lot about writing good code, debugging, and good practices used in software development.
Definitely not a book that you will finish reading in one sitting; I had it for years and I am still reading it! It is a good reference for algorithms and data structures, and the theory behind algorithms we use every day.
You might find some parts are hard to understand at first, but don't give up; sometimes it's just a matter of revisiting them after a few hours or days, or breaking them down into smaller concepts that are easier to digest. I personally find useful writing down or drawing what an algorithm does on each step: visualising something, rather than thinking about it abstractly, is a useful way to help your brain understand and memorise difficult concepts.
If you want to learn how to write clean code, i.e. code that is easy to test, read, and maintain, this is the book for you. There are a lot of code samples (written in Java) throughout the book, along with explanations, to help you understand what clean code should look like and what strategies you can implement to write great code.
A fantastic novel about a software engineer who has to fight the intricate bureaucracy of the company she works for, helped by a team of talented people, to deliver a complex software within the deadline.
The books wonderfully describes the obstacles people face almost every day at work in tech companies. There are lots of references to tools, good practices and priciples that every developer should be aware of. This is one of those books that has kept me glued to it for hours, so I can definitely recommend it!