Hi, I am Tejas and I am a full-stack developer. If you are a guy who:
- Hates coding
- Finds it difficult to write even a simple algorithm
- Feels dumb when people talk about coding stuff
- Still wants to pursue coding as a hobby/career
then, meet me. I was the same person a few years ago. In the final year of my undergrad, I studied for interviews and got placed into a Healthcare IT firm. I got trained in core Java, Spring MVC, SQL and Angular. Now, this training is what changed my perception of coding. Before this, I watched a dozen of courses on ReactJS as I kind of liked React because of its simplicity. Now, during each course, I used to build that cliche project. Yes, you probably got it right. The mighty Todo-List. Once the course was over, I couldn't type more than a component.
Now, during my company's training, I understood two things
- I need to make my programming concepts clear
- I need to build projects
I started reading Javascript concepts on w3school. Solved basic programming questions. Built a CLI project(A banking CLI application) in core Java and a full-stack OPD appointment app in Spring MVC, SQL and Angular.
I was able to implement all the Object-Oriented Programming concepts I learned in training. Yes, got stuck a lot of times but still managed to complete the project.
The full-stack project was quite challenging. Two of us had to create a database, backend and frontend for the app.
Let's skip the details about the project and jump to the learnings.
After these projects, I was able to think in code. Later I got tagged to a MEAN stack project and I implemented some complex functionalities in the project. Initially, after getting a task I used to jump on the code part but later I learnt to analyse the problem. This is how I break down the solution of a feature/bug/problem.
- Analyse the problem statement properly.
- Read the code (this is a very underrated skill. )
- Find a few solutions.
- Understand the impact of all the solutions.
- Choose the most optimized solution.
- Write the code.
- Test and resolve bugs if any.
This change in the thought process came after building those projects and learning the basic JS concepts.
As of now, I have worked on NodeJS, Express, Angular, MySQL, Elastic search, AWS EC2 instances(optimized launching and timely termination of instances to reduce costs). Also got appreciated by the firm I am working in.
So, finally, this is how you too can start your journey of coding:
FRONT-END DEVELOPMENT
- Choose a language. I would suggest choosing javascript, as it is easier and in-demand right now. You can write front-end as well as backend using JS.
- Start learning basic concepts. Datatypes, scoping, loops, array methods, objects, etc. And do solve a lot of problems. ( No need to go for Competetive Programming questions). The problems should cover the implementation of all your learnings.
- Now's the time to learn HTML, CSS. CSS is tricky but don't worry, you always have stack overflow for CSS ;)
- Now back to JS. Learn what is DOM. How to manipulate DOM. Learn HTML events. Whenever you don't understand anything, use google. Understand the code, do not copy blindly.
- You can create decent websites with your current knowledge.
- Start building. Build a ToDo List(Yes, cliche. But a good project). Create forms. Learn how to manipulate input data. How to render dynamic HTML elements using JS.
- Learn git.
- Now, pick a library/framework based on the demand. Currently in 2021, ReactJS, Vue and Angular are in demand. I would suggest, you start with React.
- Understand what is virtual DOM. Learn class components, functional components, lifecycle methods, hooks, state management, redux, routing etc.
- Now, implement the ToDo list or other projects you created using vanilla JS with React and see the difference.
- Now, React is a magic wand, learn your spells and build things.
BACKEND - DEVELOPMENT
- Learn JS. ( Cannot be skipped)
- Start learning Node JS.
- Learn promises, async functions, await keyword.
- Learn Node JS event loop
- Error Handling
- CRUD
- REST API
- Use third-party APIs like Twitter API to build things.
- Learn DBMS. (SQL or No SQL)
- Its integration with NodeJS.
- ORMs
- Build Apps
In both stacks, two things are common. Basic concepts and building projects. Do not fall into the course trap. Build, Build and Build.
Connect with me on Twitter if any help is required. Yes, I too am learning but can guide newbies!
Happy Coding :) See you on the other side!