I am glad to see that some of the readers are taking advantage from some of the advice I got from other programmers.
Here is another advice I received:
I’ve never tried a freelance site yet. However, I am working on freelance projects for 3 outside companies now. They found me themselves on LinkedIn. Hmm….I think it’s too early to try to get a software job. I don’t know if people would hire you with no experience. You can always try, of course.
Whatever way you can learn and get experience, go for it. A good way is to contribute to open source projects. That means you must first learn GitHub and Git. Look at popular projects on GitHub: https://github.com/explore
Here’s a popular Python project: https://github.com/poise/python
Here are current “issues” for this project. Problems, bugs, features that they need someone to fix for them: https://github.com/poise/python/issues
Here are the latest “commits” (code uploads) to its master branch. You learn a lot from studying what code changes people make to a project: https://github.com/poise/python/commits/master
Here are its latest “pull requests” (new code changes that developers are asking the main developer to accept for merging in the master branch): https://github.com/poise/python/pulls
See? Study how code gets made and changed day by day by studying these details for different projects on GitHub. Feel free to contribute your own changes/issues/fixes to a project. People are very picky about what code they will accept. If they reject your code, they will give you comments and tell you what to fix/improve. This whole culture of contributing to open source projects on GitHub will teach you the daily process of software development.
We do the exact daily routine at work. We have meetings every 2 weeks to figure out the main issues each of us will work on in 2 week “sprints.” Then each morning we meet and talk about what we’ve accomplished so far. We each make a new branch on GitHub to work on our feature or bug fix. Every day we commit and push new code to that branch. When we feel we’re done, we make a “pull request” to our boss to merge our branch with the main branch. He may accept it or reject it with comments on how to improve our code. We also do a demo every 2 weeks to management and our team of what we’ve done.
That’s how our job is like. So yeah, eventually try fixing problems people have on different projects on GitHub. That’s a fantastic way to really learn and get critiqued by experienced software developers worldwide. IF you have a bunch of open source contributions highlight that on your resume. That’s impressive, because it means your code is up to their high standards.
Here’s the prework site for my school, Flatiron. They give you a bunch of suggested tutorials/links to prepare to be: 1) a Ruby on Rails web developer or 2) an iOS developer. http://prework.flatironschool.com/
You don’t have to cover everything. First just focus on your main language (like Python). Eventually you’ll have to become a T (deep knowledge in 1 main language, with broad more superficial knowledge in several other languages).