Programming Learning Journey So Far and Onward
Tags: webdev, learning, programming, beginners
Published: 2023-12-15 17:39:07

#Why I Started Learning Programming 
 I was a bit late to get interested in programming, but my last work experience made me decide to learn programming.  Previously I worked at a food delivery company, and I was a menu care programmer who took care of building menus for restaurants with the company’s menu builder software. Sometimes I needed to do data entry for liquor vendors. They had more than 500 items. I needed to put more information on the menu like volume, quantities, ABV, bottle deposit, and so on from Excel sheets. It required a lot of energy. At some point, I thought these manual tasks might be scripted by programming. It made me interested in programming, and I started learning programming with online resources. 

#Phase I: Online Learning
There are so many free online learning resources nowadays. I like to pick some of my favorites here.
 
###  Havard University CS50 Series
The quality of course always surprises me. Many people say that they cannot believe those courses are free. I cannot agree enough with that. I took CS50x,CS50P,CS50W, and CS50AI. It might be challenging to start with CS50x as a beginner, but the instructor is enthusiastic and engaging and their coding challenges are unique and interesting. It's always good to know the fundamental concept of computer science to be a better developer. 

Sometimes they ask you to make a video to show your project, I feel it's handy to showcase your projects if you are not planning to deploy them somewhere.

[CS50 Link](https://www.edx.org/cs50)

###  The Odin Project
The Odin Project equips you well to be a full-stack developer. You can choose JavaScript or Ruby on Rails after completing the foundation chapter. I chose the JavaScript path and learned a lot about React.js and Node.js. To follow this course, you need to read a lot. Sometimes it feels dry but reading is an essential skill for developers. Throughout the course, you need to make many projects. I recommend you check this out if you are interested in web development.
  
They ask you to use Linux for following the course. It made me become a Linux user from a Windows user.

[TOP Link](https://www.theodinproject.com/)

#Phase II: Solo Projects
Experienced developers always advise me to create my own projects for myself, friends, or family to get better as a developer. At this point, I have enough skills to create full-stack applications on my own. I started making my projects. I can list some of them here. 
### FindIT
Help users to find movies to watch. [Link](https://github.com/Satoshi-Sh/findit2)
### Mastlog
Archiving my Mastodon toots. Users can look up toots by date, keyword, mention, and hashtag. [Link](https://github.com/Satoshi-Sh/mastlog)
### Menu Creator
Users can make an online menu and also create a menu with a JSON or CSV file. [Link](https://github.com/Satoshi-Sh/menu-creator)

Fortunately, I got a mentor on Mastodon around this time. I always ask him first about web development. He also recommended that I  use Digital Ocean Droplet to deploy some of my applications. I learned a lot that it's hard to configure a server to deploy applications.

#Phase III: Team Projects
To be a professional developer, you need to collaborate with other developers. I needed to know more about how to use GitHub, how to communicate with others effectively, and so on. I want to share some communities and resources that helped me improve in those fields.

### Virtual Coffee
Virtual Coffee is an online developer community. I mainly use this community to socialize with fellow developers on Zoom working place. You can use it here to ask for advice from experienced developers as well. Throughout this community, I learned lots of resources and events like WebDevPath, The Collab Lab, Chingu, Hacktober Fest, and so on. 

[VC Link](https://virtualcoffee.io/)
### WebDevPath
Web Dev Path is an open-source initiative to help early career developers gain experience working in a team. Through this beginner-friendly community, I learned how to contribute to open-source projects. It's kind of hard to find one open-source project to get involved more with. I feel this community was a good fit for me because of the community size.

[WebDevPath Link](https://www.webdevpath.co/) 

### The Collab Lab
The Collab Lab teaches you how to collaborate with other developers. Yes, I learned a lot about this part. Throughout the program, you gain practical experience in how to work in a team like documenting pull requests, reviewing others' pull requests, asking mentors for help, and so on. 

They ask you to submit your project and essays about why you want to join the program. I feel they spend time checking all the applications. I recommend you prepare your application well if you like to join the program. 

[TCL Link](https://the-collab-lab.codes/)
 
###Chingu 
Chingu is the platform where early-career developers create projects as a team. You just need to submit your project and they will assess your skill level. You can join them even if you just know HTML and CSS.

I joined one of Level 3 projects after submitting my project(Mastlog) and now work for a Moonshot project named TeamForward as a backend developer. 

[Chingu Link](https://www.chingu.io/)

###ComIT
ComIT is a charitable organization to provides free BootCamp courses for people in Canada. I took a Node.js course. Even though I knew about Node.js, it was great to ask the experienced instructor questions and listen to his explanations. It made my understanding of backend technology deeper. I made [team-todo](https://github.com/Satoshi-Sh/team-todo) as a final project at the end of the course.

After graduating from the course, I also helped with their React course as a teaching assistant. Helping people to learn programming was also a good experience for me. 
    
[ComIT Link](https://www.comit.org/students)

### Contributing to Open Source Projects and Volunteering
These activities gave me opportunities to work with more experienced developers. I will write about my volunteering experience in another post once the project is deployed.

#Now and Onward
To be a professional developer has been one of my life goals since I started learning programming. I have been struggling to find my first tech job at the moment. It might be because of the bad job market, or my lack of formal education in Canada. I will keep improving my skills, and continue looking for any opportunities to achieve my goal. 

#Conclusion

In this blog, I break down my learning journey into three phases(Online Learning, Solo Projects, and Team Projects). 
I also shared some of the resources I used during my programming learning journey. I hope someone finds them helpful. 

###Credit
[Wiki Media Commons](https://commons.wikimedia.org/wiki/File:Classic_Learning_(15903347764).jpg)