Web Development
• Web development is generally broken down into two areas: frontend development
and backend development, with full stack development being a combination of both.
• Frontend development focuses on what the user sees and interacts with, such as
websites in browsers or apps on mobile phones or tablets, while backend
development handles everything behind the scenes, including data processing,
storage, and logic.
• It is recommended to start with backend development when pursuing a career in web
development, as it provides a solid foundation in programming and problem-solving,
and gives a deep understanding of what happens under the hood when transitioning
to frontend development.
• Starting with frontend development, on the other hand, may make backend
development seem like a mystery, as one may have no idea what's really happening
under the hood.
• To become a backend developer, there are five essential skills to learn, which will be
covered in the discussion, starting with the first step to learning backend development.
Web Development Journey
Beginner Backend Frontend Full Stack
Unfamiliar with web Foundation Interaction Developer
development Learn programming Understand user Proficient in both
and logic interface areas
Back-end Development
• When starting web development, it is essential to pick up a programming language,
with options including JavaScript, Python, Ruby, Java, C, and Go, and the choice of
language depends on factors such as project requirements, team expertise, and
performance needs.
• JavaScript is commonly used for full stack development, while Python and Ruby are
often used for rapid prototyping and fast development cycles, and Java and C are
used for building large-scale enterprise-grade applications.
• Learning a language is only the first step, as it is also necessary to learn the ecosystem
of tools and libraries for that language to land a job, and it is recommended to stick to
one language and research job opportunities available for that language.
• For beginners, Python is recommended as the easiest language to learn, with a simple
and readable syntax, and Java is also a solid choice, often taught to computer science
and software engineering students.
• It is possible to learn a language in about 2 months by dedicating 3 to 5 hours per day
to studying and coding, and a free supplementary PDF is available to help with this
process, breaking down specific concepts to learn and including project ideas to
practice and apply knowledge.
• After learning a language, the next step is to learn a version control system like Git,
which is a tool used to track changes to code and collaborate with others, and Git has
a ton of features, but it is only necessary to know 20% of them for everyday use.
• Building backends often involves working with data structures and implementing
complex algorithms, which is a critical subject taught to computer science students
and often covered in tech interviews, especially at big tech companies.
• It is highly recommended to learn the fundamentals of computer science, including
data structures and algorithms, rather than trying to skip ahead and learn more
languages and tools, as this will provide a solid foundation for future learning and
career development.
• To establish a strong foundation in programming and problem-solving, it is essential
to spend one to two months studying classic computer science, including data
structures and algorithms, which will help avoid feeling overwhelmed later in a career.
• Learning design patterns, which are proven solutions to common software design
problems, is crucial, and there are 23 classic design patterns documented in the book
"Design Patterns" by the gang of four, which can be learned in about two months with
dedication.
• Understanding and designing databases is the next necessary step, with two main
classes of database engines: relational and non-relational, also known as NoSQL
databases, and it is recommended to learn one relational database engine, such as
MySQL, which can be learned in about one month.
• Relational databases, such as MySQL, PostgreSQL, SQL Server, and Oracle, are best for
applications that require complex queries and transactions, and use a language called
SQL, or Structured Query Language, to retrieve or store data.
• NoSQL databases, such as MongoDB, CouchDB, and Cassandra, are more flexible and
best for applications that require flexible data models and real-time analytics, and can
be learned in about a month.
• Learning a web framework, which depends on the programming language, is the next
step, with popular frameworks including Django for Python, Spring Boot for Java,
[Link] for JavaScript, and Ruby on Rails for Ruby, which provide tools for building
backends and handling tasks like routing requests and response handling.
• These web frameworks allow for building and publishing Application Programming
Interfaces (APIs), which are communication points between front-ends and back-ends,
enabling front-ends to retrieve or post data to back-ends.
• It is possible to learn any of the Frameworks, language, and databases in
approximately 2 months with daily dedication of a few hours, allowing individuals to
gain the necessary knowledge.
• By following a roadmap and committing to regular study, individuals can acquire the
skills required to apply for entry-level backend Developer jobs in about 12 months.
Roadmap to Becoming a Back-end Developer
0-2 months 4-6 months 8-9 months
10-12 months
Learn a Study computer Understand
programming science database Apply skills and seek
language fundamentals management jobs
2-4 months 6-8 months 9-10 months
Master version Learn design Learn a web
control with Git patterns framework
Front-end Development
• Frontend development is built on three core languages: HTML, CSS, and JavaScript,
with HTML being used for structuring web pages, allowing for the definition of
headings, paragraphs, images, links, and more, and can be learned in a week or two
with dedication.
• CSS, or cascading stylesheets, is used for styling web pages, enabling control over
colors, fonts, layouts, and more, and can be learned in 2 to 4 weeks with practice,
although it may take longer to become an expert.
• JavaScript is a programming language that brings web pages to life, allowing for
interactivity, handling user clicks, validating form data, and more, and can be
challenging to learn, especially for those new to programming, but can be grasped in
about 2 months with continuous study and practice.
• TypeScript is a language built on top of JavaScript, adding static typing and additional
features, making it a must-know for frontend developer jobs, especially for large-scale
applications, and can be learned in about 2 to 3 weeks.
• A UI, or user interface, library or framework, such as React, Angular, or Vue, is
necessary for building user interfaces using reusable components, with React being
the most popular and having a ton of job opportunities, and can be learned in about 2
months with a solid understanding of JavaScript and TypeScript.
• To increase job opportunities, additional skills can be learned, such as CSS pre-
processors, like Sass, Less, and Stylus, which allow for more efficient styling of web
pages, and while it's not necessary to learn all of them, being familiar with one can be
beneficial.
• With continuous learning and consistent practice, the core skills for frontend
development can be learned in about 6 months, but to truly stand out in a
competitive field, it's essential to learn additional skills and stay up-to-date with the
latest technologies.
• To get started with manageable CSS, it is suggested to use a CSS framework, such as
Bootstrap, Tailwind, Foundation, or Skeleton, with Tailwind being the recommended
choice as it has been gaining popularity over the past couple of years, especially in
React projects, and can be learned in about 2 to 4 weeks.
• Automated testing is a key skill that employers look for, especially in senior
developers, and can be achieved using testing frameworks like Jest and Vitest, with
Jest being the most popular but having some baggage, and 3 to 4 weeks being
enough to learn the essence of Jest and automated testing principles.
• Meta frameworks, such as [Link] and Remix for React applications, can provide a
competitive edge and are used in newer projects to enhance the capabilities of a
core UI library or framework, with [Link] being the more popular option and taking 4
to 6 weeks to master if you have a strong foundation in React.
• SAS is also a popular choice for CSS, and it can take around one to two weeks to get
up and running with it, making it a good starting point.
Frontend Development Learning Journey
1-2 weeks
Learn HTML for structuring web
2-4 weeks pages
Learn CSS for styling web pages
2-3 weeks
Learn TypeScript for static typing
2-4 weeks
Learn a CSS framework like
Tailwind 3-4 weeks
Learn automated testing with
4-6 weeks Jest
Master a meta framework like
[Link] 6 months
Achieve core frontend
development skills