Step By Step Guide to Become a Software Engineer

Image placeholder

Many years ago, my big brother Dike Eme Kalu sent me this document to help me transition from attorney to software engineer. This was what both he and I followed to make our respective career changes to software engineering. I do not know the original source, but I have since modified it to fit the times and passed it on to many more people. I am eternally grateful to Dike for sharing this document and I hope whoever reads this finds it as helpful as I did many years ago.

Getting Started:

  1. Setup your Python Environment (Git, Python3, & Sublime):
    • Windows: Setting Up Your Windows Python Environment
    • Mac: Setting Up Your Mac Python Environment
  2. Learn Bash Terminal: Learn Python the Hard way Appendix: Command Line Crash Course
  3. Get a Github Account: https://github.com
  4. Learn Git Basics: https://teamtreehouse.com/library/git-basics
  5. Learn Python Basics: Python Crash Course by Eric Matthes. Part I (Basics) or https://teamtreehouse.com/library/python-basics-3 or https://www.udacity.com/course/intro-to-computer-science--cs101
    • Udacity one is the best, and free!
  6. Learn HTML/CSS https://teamtreehouse.com/library/how-to-make-a-website
  7. Learn Javascript Basics: https://teamtreehouse.com/library/javascript-basics
  8. Learn Jquery Basics: https://teamtreehouse.com/library/jquery-basics-2
  9. Learn Database Basics: https://teamtreehouse.com/library/using-databases-in-python
  10. Learn Django: https://teamtreehouse.com/library/django-basics
  11. Deploy a Django App: https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04
  12. Learn Testing and Automatic Deployment: http://www.obeythetestinggoat.com/book/part1.harry.html

Later…

  1. Build a bunch of web apps and add each to your LinkedIn profile.
  2. Get better at HTML & CSS:
  3. Try out a web framework other than Django (I suggest Flask)
  4. Learn Django WebFramework
  5. Build an app using Django Web Framework & React
  6. Get better at JavaScript: https://www.
  7. Learn a JavaScript Framework: React.js
    • Before this perhaps it might be helpful to learn Typescript.
  8. Build more apps

Interview Prep

  1. Read the 1st 4 chapters of Discrete Mathematics by Kenneth Rosen
    1. Do all the end of chapter problems.
  2. Do a free course on Data Structures & Algorithms
  3. Do a paid course on data structures and algorithms (Interview Kickstart)
  4. Do 50 easy, 50 medium, and 50 hard leetcode problems.
    1. only after doing all leetcode problems presented by Interview Kickstart.
    2. Do not blindly start doing leetcode or you may become discouraged.

Bonus

  1. Read the Git Book: http://git-scm.com/book/en/v2
  2. Look up and learn these topics
  3. What is caching and how do I do it
  4. Install Varnish or Nginx on a server and use it for caching
  5. What is a load balancer?
  6. Research and implement a load balancer
  7. How do I scale a high traffic site?
  8. Read the book "Big Data" by Manning Publishers
  9. Read a book on Nginx (Packt Publishing)
  10. Read a book on Postgres (O'Reilly Publishing)
  11. What is Docker
  12. Implement Docker: https://docs.docker.com
  13. What is a Virtual Machine and what are some examples?
  14. Open an account on Amazon Web Services and deploy an app there
  15. What is a NoSQL database and how is it different from a SQL database?
  16. Implement a small project using the NoSQL databse called Cassandra
  17. What is a pure function?
  18. What is functional programming
  19. Implement a small project using mostly python functional programming tools: https://docs.python.
  20. What is PyPi and how do you interact with it?
  21. What is a Python Egg? Create a Python Egg. https://packaging.python.com
  22. What is Python Wheels?

Category: Software Engineering Tags: