Best learning resources for web developers

The ultimate path towards becoming a full stack developer on Linux and recommended resources

[ in summary ]

Best Courses for Python Web Developers

Best Books for Web Developers

Head First HTML and CSS

The self-taught programmer

Django for APIs

Eloquent Javascript

Learning React

Why I choose to use these resources and recommend

These resources are what have made me who I am today, a full-stack web developer and writer in the field of Python Django web development. I wouldn’t recommend resources that I haven’t used or tested.

These resources are based on a career path that keeps you on the track that leads to a successful software/web developer career. Besides, not have to learn every programming language or technology there is based on what others are saying is trending or an opinion.

The need to learn and master something, a programming language, framework, or technology should only be when you need it.

So, if you have a solution that requires X programming language and X framework, go ahead and learn that technology. Don’t just learn a programming language or framework for the sake as I see most aspiring programmers do.

For example, if you have ever searched “the best programming language” or “Django vs React” or “which is better, JavaScript or Python,” e.t.c, then you must be taking programming in a very ineffective way.

Every technology, programming language, or framework has its applications and applications may differ based on the problem you want to solve.

So, think of a problem you want to solve before you start learning a language or framework.

For example, develop a website that has an e-learning system for a school. A solution would be a Python Django app and the suitable framework should be Django.

Not React!

In another scenario, a client may want a website frontend design changed to look good and consume APIs, well React becomes the most suited for the job.

Not Django!

Generally,

Start with a problem → identify the best technology for a solution → learn the technology if you need to → develop the solution.

See how easy it becomes rather than learning all the languages at once or jumping from one technology or language based on a vs or which is a better opinion on the Internet.

I hope you get the point.

These recommendations are based on that approach. 

An approach that takes you from a complete beginner to learning HTML/CSS, Python, JavaScript, Python Django, SQL, React, and Linux.

In the end, you will have moved from a complete beginner to deploying web applications on the internet.

Note: It will take time. Be patient and consistent!

I am recommending books, courses, and platforms that have helped me become better at coding, problem-solving, and how to think. I may get some commissions. However, that does not mean I am trying to upsell you anything that won’t bring value to you.

Why learn coding from books

To understand the basics of programming, using books is the best strategy. Reading from books is a great strategy that will help improve your coding, especially when coupled with regular practice. Besides, books have a rather indirect approach that allows you to think of solutions to a problem rather than just typing code on your computer.

You should not just learn how to write the correct syntax of a programming language but you should learn how to think, how to solve a problem, and judge the solutions of their applicability. Otherwise, you won’t be learning how to program.

Books are great resources that help you do that.

And learning to solve problems with coding skills take time, a lot of effort, and a lot of practice.

Why learn coding from Courses/Tutorials

A full course helps you develop the skills needed to identify a problem in the real world, develop a software solution, and deploy the solution. 

However, don’t rely too much on tutorials and courses by jumping from one tutorial to another. You will get stuck in a loop that involves, constantly going back to tutorials when you are faced with a coding problem.

Instead, focus on one course, complete it, and practice developing a similar solution on your own.

If you get stuck, go back to the resource or timestamp where you’re stuck, solve the problem, and continue with your project.

After completing the first iteration, forget about the tutorial and develop the solution on your own without having to go back to the tutorial.

Obviously, you may want to research a few things on Google or StackOverflow, but don’t go back to the tutorial. Complete the second iteration of the project without having to look at the tutorial.

Finally, take a simple project that is related to the course/tutorial project and develop it on your own until you complete it. It does not matter how long it takes, just make sure you complete it.

That is how you learn to code.

Should I learn to code from books or courses?

You should learn from books and courses to be a better developer. However, if you want the most comprehensive information about a programming language, concept, technology, or framework, a book is the best choice. On the other hand, learn from courses to get a step-by-step process towards completing coding projects and following best practices.

A combination of both books and courses works best.

Based on your preference, you may find books better than courses or vice versa.

Go with your preference.

For me, books have a lot of value and are faster to assimilate information. When I want to know how to do something such as deploy a web application, a course or tutorial tends to be better.

Use Linux operating system for your development

If you’re going to be a serious software engineer or web developer, especially a full stack developer, you should start to learn Linux operating system and use it.

Although you may not need it for your local development, you will most likely use Linux when deploying your web applications.

The majority of the shared hosting, VPS, and dedicated servers run on Linux.

Thus, when deploying your software solutions, you will need to know basic to intermediate Linux concepts, utilities, and management tasks.

I prefer to use Linux operating system for desktop and server environments. That way, I do not need to learn afresh another operating system.

You should too. 

As a beginner, Ubuntu should get you started. Install it on your machine.

On most server environments, you will use Ubuntu as it is the most popular Linux operating system for servers.

Check out these books and courses on Linux for beginners and experienced devs.

Best Linux books:

Linux fundamentals – A practical guide for Data Scientists, Machine Learning Engineers, and IT Professionals

The book introduces you to Linux, Linux installation, Linux directory, file system navigation, working with files and directories, user and permissions management, and text processing.

For intermediate concepts, you will learn about process management, job scheduling, useful Linux utilities, deploying machine learning models, and shell scripting.

You will also learn how to connect to a remote Linux instance such as AWS EC2 instances.

Best Linux Courses

After getting used to using Linux, here is a Python Django full stack developer journey you can take:

  • Start simple with HTML and CSS
  • Learn Python
  • Learn Python Django
  • Learn SQL
  • Learn JavaScript to add interactivity to your Django websites
  • Develop scalable web applications with the skills
  • Advance your web development career by learning about Python Django APIs
  • Learning a front-end framework such as React
  • Use Python Django for backend development and React for frontend development
  • Learning machine learning to integrate with your Python Django applications. (optional)

Start simple with HTML and CSS then Python

Before diving into Django or maybe Python, you may want to introduce yourself to the web development world by learning basic concepts such as code syntax, tags, keywords, e.t.c.

A great and very simple way to learn these concepts is to start with HTML and CSS.

I find these books to be very helpful when you’re a complete beginner in your web development career.

HTML and CSS

Head First HTML and CSS

Learn Python

So, as a beginner, the best books to start with are Python programming books, and not all of them.

Pick books that teach you not just how to write clean Python code, but also how to think and provide solutions to problems.

There are two great Python programming books that I find to teach these two things:

The self-taught programmer

Python crash course

To learn more advanced concepts in computer programming, you should learn data structures and algorithms using Python. Here is a great book that presents one of the hardest topics in computer science in simple terms.

Data structures and algorithms with Python

Learn Python Django

After learning the Python programming language and you want to be a full-stack web developer, then the Python Django book should be the next one to read.

Here are my best Python Django books that have helped me a lot – from being a total novice to a better Django web developer:

Django 3 by Example

Django for beginners

Django for professionals

If your goal is to develop E-commerce websites with Django, then check out this book:

Beginning Django E-commerce

Django for APIs

Best Django courses:

  1. The ultimate Django course – codewithmosh.com
  2. Creating Python APIs like a BOSS

Learn JavaScript to add interactivity to your Django websites

To make your websites look nice and interactive, you will need to learn JavaScript. For now, understand the basics of vanilla JavaScript and be able to add some interactivity to your websites.

Javascript from Beginner to Professional

Eloquent JavaScript

Develop scalable web applications with the skills you already have

Create a few Django projects to understand the flow of things such as creating models, linking the models to the views, and creating URLs with Django.

Here, you will need to learn SQL. SQL is the language used in databases that Django mostly use. These databases are MySQL, PostgreSQL, and SQLite, among others.

Thus, to be a full-stack developer, you need to know how data is stored. One great way is to understand SQL, which gets into deeper details on data and databases.

Learning SQL

Learning MySQL

PostgreSQL Up and Running

Advance your web developing career by learning about Python Django APIs

Developing consumable endpoints to your Django applications allows you to develop solutions that can be used on different platforms such as desktop and mobile applications. Thus, instead of creating android apps from scratch, you just exploit APIs that can be used to manipulate and retrieve data from the server.

Django for APIs should be the book to start with.

Django for APIs

Learn a frontend framework such as React

Develop well-designed, interactive, and aesthetic Django applications by adding React.

Here are the best React books:

The Road to React

Learning React

Use Python Django for backend development and React for frontend development

Now that you have taken the time to learn React, implement the skills learned by developing web applications with Python Django as a backend framework and React as the frontend framework.

Learn machine learning and AI (optional)

You may want to integrate your web applications with machine learning models. Suitable for very large and enhanced web development projects.

Python Django is easily integrated with machine learning models. Coupled with the knowledge you have on Linux, you will be able to deploy web applications with machine learning on the internet.

Full stack book

Front-End Back-End Development with HTML, CSS, JavaScript, jQuery, PHP, and MySQL

Practice until you make it near perfect!

Host your Python Django websites

AWS is a good web hosting option for machine learning integrated web applications.

Other hosting providers that include Bluehost, Heroku, and Hostpinnacle are ideal for Python Django web applications. Basically, the majority of the hosting providers with VPS or dedicated servers are ideal for hosting your web solutions.

Here are my recommendations for hosting your web applications such as Python Django websites:

  1. DigitalOcean
  2. Amazon Web Services
  3. Heroku
  4. Bluehost
  5. Hostpinnacle
  6. Pythonanywhere

How to solve problems

As I said, being a programmer is not just knowing how to write syntactically correct code.

It also entails knowing how to identify problems and providing the most suitable solutions.

If you want to become a good software or web developer, you must know how to solve problems as that will be the major part of your career.

Perfect the art of programming by taking a look at these two books:

The self-taught programmer

Computer Science Distilled

Very detailed books about logic, algorithms, programming paradigms, e.t.c. Let’s just say all about computer science, algorithms, and problem-solving.

Finally, jobs!

Now that you have all these technical skills, you need to revamp yourself to be ready for the job market. Whether you want to be employed or be a freelancer, you must have soft skills. The majority of employers are looking not for a developer who knows how to code, but a developer who can connect with other people, communicate effectively, manage, keep time, and have organizational skills.

I know this is a dread to the majority of programmers. I too had the same problem. My first interview was super awkward. I didn’t what to say, how to answer, how to present, e.t.c.

But, life is all about learning from mistakes and improving from them. As the need arises, you hone the skills you need for the right moment.

Right now, you need soft skills.

If you want to learn how to navigate through the job market and make yourself job ready after perfecting your coding skills, here is a book that will help you a lot in your software engineering career, interviews, and landing your first job:

Soft Skills

The complete software developer’s career guide

If you have made it so far, you are up for success.

Just start now, I promise you, you will get perfect later. Do not wait until you feel that you have achieved mastery. You will never get there unless you take that book, code an awful program, and practice until you make a marvellous work of a program.

This is a book that has helped me a lot to avoid procrastination and get started on the most important things in life.

Start Now Get Perfect Later

Crack on, me Hearties! (Progress quickly, mate)