The Traditional Way Of Learning
In the olden days, you had to go to school or college to educate yourself. In the classroom, listen to the lectures,
make notes and enjoy some discussions with the lecturer and classmates. At home, you would refer to textbooks and
complete the work suggested in the curriculum.
Other than college, you had and have the option of private tuition. There are many brick and mortar training academies
that supplement the colleges and universities.
With respect to computer science, the goal of the traditional college education is not to prepare the student for an
entry level job in the IT industry. The goal is to educate the student in computer science so that they can solve
problems by creating and improving software. The academic nature of such a course is rigorous and takes a few years to
achieve mastery. The post is not about drawing parallels between a university course and self-learning. This post is
about discussing a path to start a career in IT. The takeaway is, to get an entry level programming job, you don’t need
a traditional multi-year academic course.
Hey, people still go to school and colleges. Yes, of course! Today, virtual classrooms and video lectures are
supplementing the brick and mortar classrooms. Eventually, more and more people will be educated online and at some
point in the future, the physical classrooms will be a thing of past.
In the recent past, particularly in learning programming, starting with a book was a common approach. This could be a
physical or digital book, or even one downloaded from a free source. The key is to thoroughly read the book, engaging
deeply with the study material. To supplement this learning, resources like Google, YouTube, and Wikipedia are
invaluable. Practicing by implementing new concepts in personal or reference projects helps solidify understanding.
Once these skills are honed, they can be applied in real-world projects. However, it’s important to note
that this method, too, might soon become outdated.
The Modern Way Of Learning
Internet has democratized education like never before. You can learn almost anything for free or cheap.
- Wikipedia is the internet’s text reference for everything. It is an online free encyclopedia that anyone can edit.
- Youtube has video courses for just about anything.
- The internet is full of articles and blogs with a lot of educational material.
- In addition to these text and video resources, you have forums such as StackOverflow and Reddit. On these forums,
you can ask for help. The friendly communities help people by answering and guiding other members of the community.
- There are countless educational platforms online. Khan Academy provides high quality video content on subjects
including mathematics, sciences and computer science. Coursera and Udemy are popular platforms that offer paid and
some free coursers. Many Coursera courses allow auditing, ie, watching the videos for free. Udemy offers
- Generative AI based chat services such as ChatGPT and Bard have recently joined the club. Today, you can use
ChatGPT for learning. For example, you can ask ChatGPT to provide a list of topics in your chosen subject. You can then
follow up with further questions on each topic.
For modern internet assisted education, all you need is a laptop, internet connectivity and a quiet place. With
motivation and dedication, you can learn anything you want. Even if you did not study computer science in school or
college, you have endless ways to learn programming and breaking into IT.
Learning to program opens doors to the IT industry. Programming is a key skill in IT. Start with programming.
There are many paths to learn programming. One of the easiest methods is web development. In this path, you learn some
preliminary and related technologies first: HTML, CSS and Git. You can learn the basics of these
preliminary web and IT topics within two to three days.
There are other paths to break into IT, too. Traditionally, folks have started with a language like C. Along with a
high level language like C, people studied computer science theory. This path is more formal and abstract in nature. The
path isn’t necessarily related to web development. For a self-learner, this traditional academic path can be difficult.
Although, web development is by far the most popular learning path for beginners, it isn’t the only path.
What programming language should I learn first?
backend. Python, Java and Go are some popular choices for backend development.
Project Based Learning
To get started, take a tutorial. Follow the tutorial well. Use the pause, repeat and rewind buttons of the video player.
Do what the instructor says on your computer. Let’s say, you have started watching a Youtube tutorial series on HTML.
Watching is the first step. Writing some HTML markup on your computer is the next step. Everytime you watch a video or
read a tutorial, follow it up with doing it practically on your computer. Emphasise on practically doing things on your
Buy a domain name. Publish your website on the internet.
Project stage two: In the next stage, learn a backend programming language and a relational database such as
PostgreSQL. Evolve your static website into a web application. The project could be anything from e-commerce site to
social media application to gaming site to appointment scheduling site to educational platform.
Project stage three: Deploy your application in the cloud. With this step, you step up your software engineering
skills. Not only you can develop software applications, but also have the ability to deploy it. Deployment will expose
you to a bunch of software engineering principles and practices. A well-rounded deployment process will involve
executing automated tests and safely deploying the changes with the option to rollback to a previous version. It helps
create a robust process of release management and software engineering best practices.
Commitment: To successfully learn a few topics, you have to have commitment. You may have other engagements during
the day or night such as having a job. When interruptions happen, you can slow down and start procrastinating. You
might never get back to learning. To avoid falling prey to distractions and interruptions, commit to an achievable
schedule. Thirty minutes a day for thirty days is a good schedule and commitment for a beginner. If you can do more,
consider dedicating one hour for sixty days. A Hundred days of learning is a popular scheme on the internet. I have come
across many tags such as
it. Whatever schedule you choose, don’t forget your well-being. Make time for physical and fitness activities. Get
adequate sleep, eat healthy and maintain social connections. Celebrate small victories and milestones.
Notes: make some notes while going through the tutorials. By taking notes, you become more active in your listening
and reading. Your own words in your notes can help understand complex topics better. The visual and kinesthetic learning
style of note-taking aids in memory retention. Reviewing your own notes will reinforce the knowledge over time.
Get help: while learning a technology stack, you might feel like being stuck and unable to make progress. When you
hit a wall, take a break, take a walk, clear your head, sleep over it and then try to make progress with a fresh mind.
You can ask any and all types of questions to ChatGPT. The AI Chat services are good at explaining complex and technical
terms in layman terms. They can also draw pictures to illustrate the point. If you feel the need to talk to a human,
join a forum like StackOverflow and ask your question, nicely. Someone will answer in your question soon.
Popular Technology Stack: Web Development
- SQL with PostgreSQL
With this technology stack, you develop some skills in backend and frontend.
your application in the web browser. If you focus on this part of the stack, you can look to have a job in frontend
the stack, you can look to have a job in backend engineering.
If you learn both frontend and backend, you can become a full stack developer.
What other types of software can I develop using my programming skills?
There are numerous categories of software. I will list a few of them here:
- Artificial Intelligence
- Operating System and system software
- Mobile applications
- Internet Of Things
What editor or IDE can I use?
Start with a free tool such as Visual Studio.
You don’t need to buy any books in the beginner level. Just use the free resources on the internet. There are also free
books from various universities and authors. Download and read them if you are inclined towards text based learning.
What are the next steps after learning web development?
Increase your breadth and depth of knowledge. In your IT career, you will have to learn a few programming languages
given different contexts. Don’t shy away from learning a new programming language. Start thinking about software
engineering outside the context of web development. Expand your computer science and mathematics knowledge. Explore
the world of data structures and algorithms. Study, learn and apply design patterns and software architecture in your
projects. Make your application robust in terms of performance, security, scalability, reliability and sustainability.
Attend meetups, conferences and technical events. Embrace open source and try to make contributions. Get involved in
communities. Make friends and expand your social network.
Now is a good moment to ponder what a student would study in a traditional university engineering course. I am not
suggesting enrolling in a college course. Think about the topics the students study in such a traditional undergraduate
course in computer science. Now, think how you can learn the same topics by yourself with some assistance on the
Tech Chorus References