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:
- Setup your Python Environment (Git, Python3, & Sublime):
- Windows: Setting Up Your Windows Python Environment
- Mac: Setting Up Your Mac Python Environment
- Learn Bash Terminal: Learn Python the Hard way Appendix: Command Line Crash Course
- Get a Github Account: https://github.com
- Learn Git Basics: https://teamtreehouse.com/library/git-basics
- 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!
- Learn HTML/CSS https://teamtreehouse.com/library/how-to-make-a-website
- Learn Javascript Basics: https://teamtreehouse.com/library/javascript-basics
- Learn Jquery Basics: https://teamtreehouse.com/library/jquery-basics-2
- Learn Database Basics: https://teamtreehouse.com/library/using-databases-in-python
- Learn Django: https://teamtreehouse.com/library/django-basics
- Deploy a Django App: https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04
- Learn Testing and Automatic Deployment: http://www.obeythetestinggoat.com/book/part1.harry.html
Later…
- Build a bunch of web apps and add each to your LinkedIn profile.
- Get better at HTML & CSS:
- Try out a web framework other than Django (I suggest Flask)
- Learn Django WebFramework
- Build an app using Django Web Framework & React
- Get better at JavaScript: https://www.
- Learn a JavaScript Framework: React.js
- Before this perhaps it might be helpful to learn Typescript.
- Build more apps
Interview Prep
- Read the 1st 4 chapters of Discrete Mathematics by Kenneth Rosen
- Do all the end of chapter problems.
- Do a free course on Data Structures & Algorithms
- Do a paid course on data structures and algorithms (Interview Kickstart)
- Do 50 easy, 50 medium, and 50 hard leetcode problems.
- only after doing all leetcode problems presented by Interview Kickstart.
- Do not blindly start doing leetcode or you may become discouraged.
Bonus
- Read the Git Book: http://git-scm.com/book/en/v2
- Look up and learn these topics
- What is caching and how do I do it
- Install Varnish or Nginx on a server and use it for caching
- What is a load balancer?
- Research and implement a load balancer
- How do I scale a high traffic site?
- Read the book "Big Data" by Manning Publishers
- Read a book on Nginx (Packt Publishing)
- Read a book on Postgres (O'Reilly Publishing)
- What is Docker
- Implement Docker: https://docs.docker.com
- What is a Virtual Machine and what are some examples?
- Open an account on Amazon Web Services and deploy an app there
- What is a NoSQL database and how is it different from a SQL database?
- Implement a small project using the NoSQL databse called Cassandra
- What is a pure function?
- What is functional programming
- Implement a small project using mostly python functional programming tools: https://docs.python.
- What is PyPi and how do you interact with it?
- What is a Python Egg? Create a Python Egg. https://packaging.python.com
- What is Python Wheels?