If I were starting my coding journey today and I wanted a job as a professional, here are the steps I would take:
- Learn from The Odin Project. Build the projects to build a great portfolio and apply for jobs during the full stack portion of the course. This should be enough to land a job.
- Keep upgrading skills by using Full Stack Open. This course is awesome because of the exercises including refactoring, building, adding technologies, debugging, etc.
- Optional: Learn from App Academy Open. The object oriented programming projects, the data structures and algorithms, and computer science will definitely get someone ready for a company with a very high tier of interviewing.
I have always felt sleepy when reading documentation or coding tutorials. Until I started using alternate nostril breathing. I feel like this simple strategy has helped me be able to read for longer periods of time, with greater concentration, less mind wandering, and more energy.
I wrote these tips earlier: https://bryanttunbutr.wordpress.com/2016/04/04/how-to-apply-for-your-first-junior-developer-job/ and https://bryanttunbutr.wordpress.com/2015/08/12/how-to-build-an-amazing-resume-for-career-changers/
Here are some additional tips I have:
- Set your LinkedIn profile to open to new jobs and make this visible to everyone including recruiters
- Make your LinkedIn headline be something like Software Engineer Actively Seeking Opportunity
- Connect with technical recruiters every day. Reach the maximum every day. You must have at least 500 total connections. Add recruiters that have a headline of “We’re hiring.”
- Have your resume look nice with enough white space. Avoid typos, too many fonts, strange indentations and spacing. Have multiple people check and proofread. Make your hyperlinks blue to stand out.
- List technologies you used. If you completed a boot camp then list the technologies in the syllabus. Of course be prepared to answer questions and talk about the technologies as well as your role in the project
- Use live links. Recruiters are often non-technical so the live link demonstrates your coding ability. Make sure it looks good on mobile. Invest the money to not have the 30 second load time on Heroku.
- Have a section called “Programming Experience” in your resume.
- Always have an answer to, “What are you building now? What are you learning now?”
- You can and should answer with “I don’t know.” However if you are asked about something similar you can answer that you have similar experience, i.e. “Do you have experience with the ASP.NET MVC framework?” “No but I do with Ruby on Rails which uses the MVC design pattern.”
- Remember that technology is important but the most important thing is solving a business problem. When describing a project try to think in terms of the business results/use cases, i.e. increased profits, decreased expenses. If this is not possible, explain how your work can help business users i.e. “Created charts and graphs which makes data reports easy to understand and access.”
I found this site that offers free coding mentoring
I recently attempted a LeetCode Contest but I could not solve a problem. The reason I could not solve the problem is that even though I knew it was similar to a problem I had worked on previously, I did not know how to solve that previous problem.
Algorithmic problems are based on pattern recognition but that pattern recognition isn’t helpful if too much time has passed.
To increase my retention I am using this schedule https://www.quora.com/Whats-the-best-spaced-repetition-schedule. It is the Fibonacci numbers. I am using Gmail’s ability to snooze emails to the future to practice algorithmic problems that are helpful in solving many other problems.
This is the 2nd Habit of the 7 Habits of Highly Effective People.
I have learned that it is also a habit of highly effective developers. Before starting work it is best to get a very clear picture of what done looks like. This is done by gathering requirements and ideally getting it in writing before starting development.
The results of this is avoiding doing unnecessary work, incorrect work, or work that should not be done at all.
To learn Python for data structures and algorithm interviews (assuming you’re already strong in another language): How I Learned Python in Just 10 Days
To learn by building projects: How to Learn Python Tutorial
To learn by solving problems: Teach Python 3 and web design with 200+ exercises
Here are 2 great resources for learning the answer to this question:
What happens when you click on a URL in your browser
What happens when you type an URL in the browser and press enter?
The way I learned this was by paraphrasing each sentence and visualizing the actions happening. I also use the GMail snooze feature to first review this every day, then every 3 days, then every week, and now it will probably be every quarter.
I started learning from these awesome resources. They were free because of my local library 🙂
With Lynda (now called LinkedIn Learning) I only took one course on Object Oriented Design and it was very clear and concise.
I am impressed with Team Tree House because it is interactive like Codecademy and in depth as well. They also teach how to use documentation and have small projects along the way.
Check out your local library and see if you can get these resources for free 🙂
Here is a great post on meditation to improve as a coder: Meditation will make you a better programmer: Here’s how.
I especially second the recommendation to use the free Insight Timer App.