My Coding Journey, and Coding Tips
Tags: beginners, welcome, tips, learning
Published: 2021-01-23 20:27:44

## Hello Everyone and dev.to!

I am Mustofa, Indonesian, 22 yo. This is my first time writing an article, probably in my entire life, so this might have many mistakes within the contents or words. This is just to share my coding journey briefly and give some coding tips from my opinion and experience. Last but not least, I hope this post can be useful for some people. Enjoy.

## My coding journey

### High school
5 years ago In a small city where everyone's popular job was only when you become a doctor, police, accountant, or business. Everyone and I thought I might become a great doctor. So I took a science stream in my high school. That day I got my laptop broken and brought it to a random tech workshop in a nearby mall, the way he was fixing it looked really cool so it gains my curiosity in IT. We had great conversations and became friends. He told me many interesting things about IT and taught me an important lesson `You can do anything if you know how to search on google`. It made me start learning how to fix basic computer problems like troubleshooting internet connection or installing windows. After gaining all the knowledge, I start doing a part-time job fixing my friends/teacher computer and gain satisfaction from it, that's when I decide to defy everyone's hope of me becoming a doctor. And go into the IT world.

### University
Soon after graduation, I attended a 3 years IT degree in a private university which shocked me, `I never knew I need to CODE!`. while everyone else had the basics of coding, I only knew how to fix internet issues on computers. On my first day, the lesson was about `variables`, when the lecture explaining what is `string`, I can only think of guitar string!. It comes to the realization that coding is an impossible thing for me. Then, I started to divert my path by joining a part-time job as a salesman and a technical assistant. I gave my best for non-coding theory related subject and nearly failed all of the coding subjects. I can barely pass because my friends helped me out.

### Internship
2nd year of study without knowing how to code, the university sends the students for an internship as preparation before 3rd year. I barely pass the phone internship interview because I googled out the answers. I never saw in my life someone can actually code back then until I met this person called `R` in the intern place. As an intern, he built a website in less than 2 hours `live` in front of me for his freelance work. Soon we became friends and learn to code together, It was very hard on the first day to understand it. It gave me a severe headache and nosebleed at night that day learning the basics of HTML/CSS/js and a bit of ASP.net C# to build a simple form. The reason why I got motivated is that he showed the result of everything he taught in a real-life scenario, which was pretty cool. One thing he always said to me `Nothing is impossible here, so every error has a solution`, taught me to not be afraid of getting errors on my code. From there onwards, I got an assignment from the company to build a signup/login form. I experimented with many things while building this form, especially the styles. because looking at the style changing keeps me motivated. but in the end, I failed to meet the deadlines and ends up transferring the assignment to someone else. Many assignments came after that, some success, and some failed.

### Post internship + Last year at university
After 3 months of internship, I got used to HTML/CSS/js and CRUD concept in C#. My senior friend contacted me asking if I can make an e-commerce website for her. I did not ask for money nor anything at that time, my only aim was only to learn. I took the project, I asked `R` for advice since I never got a project this big before. Instead of listening to lectures, I was busy coding in class. for some deadlines, I need to stay up late until seeing a sunrise. I stopped my part-time job at that time and focus just on completing the project. The most time consuming and also the most important learning process was `debugging errors`, I encountered many errors and mistakes. `Searching errors on Google and reading the stack overflow question & answer properly` was the real key to code. It's hard to read at first, but I kept forcing my brain to just read it. In the end, the project was completed after 3 months, even without getting anything, it was a life-changing project for me. The senior was happy and start spreading words to her friends, by then I started doing many freelance IT project, but that time, I started collecting money from them.

### Work
Soon after graduation, I join a fintech company as a front-end developer. Here I studied coding best practices, better application architecture, new/latest frameworks, and development workflow in the workplace. I am inspired to write a blog after watching a youtube channel `Web programming Un pas` to `share the knowledge and contribute to the community if you know how to code already`. After this post, I wanted to try to post more useful articles related to coding.

## Coding tips
- The hardest thing is to `start`, and consistently doing it. To do that, you need to have a `career goal and project goal`. It is easier to keep yourself motivated that way rather than learning it only just for the sake of learning it.
**e.g of career goal**: I want to work in company 'A' as a developer or I want to build a tech company or I want to have a good income from solving problems with the app I create. 
**e.g of project goal**: I want to build a resume portfolio, I want to build an e-commerce app for my business

- Start small. You do not need to create a big project at first, it will end up tiring yourself and get you overwhelmed. Instead, try small thing first, 
e.g: showing up hello world text to screen, creating a button and its types, create header navigation, etc.

- Every little thing matters. Showing up `text` to the screen or buttons might sound a little or a simple change, but in practice, it is not at all, especially for beginners. Appreciate yourself even by showing `Hello world` to the screen or terminal.

- Do not confuse yourself too much with the environments at first.
In case your goal is to show text on the screen.
take this java code example:
```
public static void main(String[] args) {
        // Will print hello world
        System.out.print("Hello world");
}
```
I used to ask myself these questions: `What is System` or `What is System.out do` or `Why does it use string[] args`. It is not wrong to ask these questions, but these will confuse you as beginners and as you confuse, you will lose motivation. We just have to stick to the goal `to show the text to the screen`, so the real question to keep it simple is
**Which block of code is responsible for displaying my text**
```
System.out.print("ANYTHING INSIDE HERE");
```
- Learn from having errors and mistakes. You will undoubtedly encounter errors, if possible have some friends/community to share your mistakes or errors, if not, google is your best friend. It's better to not jump straight to google or community first when having errors. because most of the errors caused by common mistakes like a typo, or missing symbols like a semicolon, colon, dot, or comma.

- Choose your resources. This is the list of my resources
**youtube.com**
**codecademy.com**
**freecodecamp.org**
**udemy.com**
**etc**
For starters, just follow what the tutorial says, you can follow exactly what it does, and after completing it, you can try to start creating something similar to it on your own, or working toward your goal.

Thank you for reading until this point. I hope you have a great day ahead. :wink: :muscle: :muscle: