5 Things I Wish I’d Known When I Started Programming
Why has programming 101 haven’t taught us about these yet?

If you stumble upon this, you might be in a better start than I was in 2008. University courses taught us everything like data structure, array, object-oriented programming, linked-list, and polymorphism except for the things that prepare us for real-world programming.
These five things below might prepare you for a smoother journey in programming.
#0 Make use of the framework
Use a framework, avoid reinventing the wheel.
I remember the first ten projects that I have done, and I never use any framework. End up 90% of the time in coding is used to set up the API route, authentication, security, and many other essential features needed in an application. In reality, the time spent can be used for more features and requirements-relevant tasks instead.
A framework helps you set up many essential features like login, register, middleware, route, database wrapper, caching, email, CORS, logging, kernel, etc. Otherwise, you will need to code those all by yourself.
Some examples of remarkable frameworks for each language:
- Golang — Gin
- Python — Django
- NodeJS — Express
- Javascript — VueJS / AngularJS
- Java — Spring / Hibernate
- Ruby — Ruby on Rails
- PHP — Laravel / Codeigniter
- Rust — Rocket
#1 Choose a better programming language. Faster, efficient, and famous.
Unfortunately, my first three programming languages are C++, JAVA, and PHP, and I decided to go deeper into PHP.
PHP is suitable for web development, APIs and can do most of the features wanted in the market. It has low barriers of entry, is feature-complete, and everyone knows how to use it. But it lacks support on real-time transactions, is resource-hungry, and has a bottleneck on scalability.
If I can time travel back to that time to meet myself when I started programming, I might advise myself to pick up better programming languages like Go, NodeJS, or even Rust. These languages proved to provides higher speed, traffic capacity, versatility, scalability, usability, and lower memory consumption for most of the actual use cases in life.
For example, Golang, Nodejs, and Rust are suitable for building:
- High traffic API — Google, LinkedIn, eBay
- Data streaming platform — Netflix
- Chat application — Telegram, Discord
- Payment service — Paypal, Google
- Real-time connected service — Trello, Uber
- File syncing — Dropbox
#2 Tools beginners should know
Essential tools that aid programming experience like:
- Git Repository (Version control of the code, merge code, track changes to the code, revert to specific version)
- Sourcetree (User interface for Git if you are not a fan of the terminal)
- Postman (Create and test API)
- Insomnia (Create and test API in advance mode)
- Jira (Plan, tracking and manage tasks)
- Putty (To SSH tunnel to cloud instance)
- Sublime Text/VS Code (Aesthetic code editor)
- Docker (Standardized development, staging, and production environment + automate deployment)
- Filezilla (FTP file management)
- Laragon (Powerful all in one local development tools)
- MySQL Workbench/PhpMyAdmin/Sequel Pro (Database management)
- Google Chrome DevTools (Debugging, network log, and log console)
- Diagram.net (Flow chart, drawing architecture, and user flow)
- Figma (Collaboration interface design tool)
- Linux Command Cheat Sheet (For deployment)
These tools are essential. I recalled in 2008; I start coding without using Git repository. In collaboration with more than two members, we combine code by sending each other emails. It takes us hours to merge the code every time. We even told each other not to work on the same thing to avoid code conflict. Until I discovered Git, it solved the above problems instantly!
It should be taught in programming 101!
I think ALL programmers in the world should have known this on the first day of being a programmer.
#3 Join a programming community
Try subscribing to programming-related community groups/topics/publications on Facebook, Twitter, Reddit, Stack Overflow, Quora, Medium, Discord, and many other forums. Those platforms work well by feeding you tricks and tips on programming. Other programmers might share the tools they are using, the best-known method to code certain features, and share guides to solve programming problems. It is a great way to learn something new every day.

If You Want To Walk Fast, Walk Alone. If You Want To Walk Far, Walk Together.
Isolating yourself might help you focus on projects and learn fast. Still, often we reach a plateau and struggle in some aspects of programming due to limited exposure to specific fields of knowledge and ideas.
It might not be suitable now, but when the pandemic is over, try joining more gatherings, events, conferences, and hangouts with other programmers. It might help motivate yourself, discover new ideas, get updates on new tech, exchange support and knowledge in the programmer's community.
On the other hand, there are plenty of online courses on Udemy, Coursera, and YouTube. Each of the frameworks or languages might have an official course produced by the founder. You can watch as much as you wanted to polish your programming skills.
#4 Read the official documentation carefully. Surprisingly all info you need is there.
We are Googling and searching for solutions all the time in Stack Overflow, Quora, Reddit, and many coding blogs. In reality, most of the answers are available in the official documentation of the language or framework.
Sharing you the official documentation of some frameworks:
Carefully reading each line of the documentation often helps me to solve the most complicated problem!
Wrapping up
All university programming courses should include these in their syllabus, so it will save a lot of programmers from knocking their heads against the wall. If you are a veteran programmer, you would strongly agree with the five things above and might have more points in your head. Feel free to share it in the comment below!
If you liked this article, you may also like:
