/softwareengineer

This repository contains notes and programs generally not taught as part of Computer Science & Information Technology curriculum.

Primary LanguagePythonMIT LicenseMIT

softwareengineer

This repository contains notes and programs generally not taught as part of Computer Science & Information Technology curriculum.

The topics here are going to be taught over 50 academic hours. The topics covered here are aimed for a full stack developer. Majority of the examples demonstrated here are based on Python.

  1. Basic programming
  2. Datastructure and Algorithms - Real time examples and visualisation
  3. Programming languages - Java, Python & Go basics
  4. TextEditors & Shell - VSCode, Vim, nano
  5. Source control - How to use Git
  6. Relational & Non relational Databases - MySQL, MongoDB, Distributed DB basics with examples
  7. Web app frameworks - flask, django
  8. REST Apis - Building REST apis with flask
  9. Q&A
  10. App deployment & hosting - Heroku, AWS, Azure, GCP
  11. Web servers - Apache/nginx/ha proxy
  12. Web development basics - HTML/CSS/JS basics with examples
  13. Javascript frameworks - node/react
  14. Networking & Security - https/websocket/webrtc/cryptography
  15. Building web apps - Flask + react.js demo app
  16. Q&A
  17. API integrations - Third party integrations - Twilio/Sendgrid
  18. Microservices, Containers, Serverless - Lambda, Docker & kubernetes
  19. DevOps & CI/CD - Ansible/Jenkins/Prometheus/Grafana
  20. Build an end-to-end app and deploy - vercel, heroku app deployment
  21. Q&A
  22. Data science & visualization - Pandas, Scipy, Matplotlib basics with examples
  23. Research & Analysis on dataset - Demo application
  24. Basics of AI/ML - Pytorch/Tensorflow
  25. Building a ML model from scratch - Tensorflow example
  26. Transfer Learning & Deep Learning - Basic concepts
  27. Q&A
  28. Task queues - Kafka, RabbitMQ
  29. Server architecture & system design - Building whatsapp/snapchat/instagram/facebook like architecture
  30. Software Testing and how to write automation testing
  31. Mobile app development - Android
  32. Build a complete mobile app - Build and deploy an app in playstore
  33. Q&A
  34. Game development - Blender/Unity 3D basics
  35. Blockchain & Cryptocurrency - Basics
  36. Metaverse - AR/VR/XR basics
  37. Software tools used at companies - Basics
  38. Q&A

Must read

Coding interviews https://github.com/jwasham/coding-interview-university
Laws to live by https://github.com/dwmkerr/hacker-laws
Twelve-Factor App https://12factor.net/
Full stack python https://www.fullstackpython.com/
Things every programmer should know https://github.com/mtdvio/every-programmer-should-know
An introduction to distributed systems https://github.com/aphyr/distsys-class
How do I test https://blog.nelhage.com/2016/12/how-i-test/
Build your own X https://github.com/danistefanovic/build-your-own-x
Undervalued skill: Writing https://blog.pragmaticengineer.com/on-writing-well/

Session I - 28th Aug 2021

In the first session, we will discuss the basics of programming and what are all the constructs that are common across languages and the common complexities. We will go through stack, queues, recursion, trees, hashtables, sorting, graphs with visualisation along with real life examples on how do they work internally.

Presentation link: The file has been placed in the session I folder in the repo. https://jamboard.google.com/d/1vGsFzVVWzTh9HcsvD1cXFEb14sRN3rXKfbs02y-6Gug/viewer?f=7
Reference link: https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
Recordings link: https://drive.google.com/file/d/12iLRgQqTFr-Vto_jVtE9gDTWBR2UHXqN/view
https://www.youtube.com/watch?v=k6D_6T7BY3I (Youtube live stream)

Session II - 11th Sep 2021

Basics on Java, Python & Go languages with specific examples explaining how are they used in real applications.

Presentation link: Pushed into Session II folder
Reference link: https://education.github.com/
https://www.programiz.com/python-programming/object-oriented-programming
https://www.geeksforgeeks.org/python-oops-concepts/
Recordings link: https://youtu.be/Q9SXTy7Vtlw (Live stream link)

Session III - 9th Oct 2021

TextEditors & Shell - VSCode, Vim, nano.
Basics on using Linux commands
Explaining how to use Shell efficiently
Talk about one of the product - A Rasberry Pi based Walkin counter that I have built earlier and details on how to approach problems

Presentation link: https://docs.google.com/presentation/d/1ZKh2z-g_yG6T8j-9tcY01TdIbojcnQvaLEi1m3gWfG8/edit?usp=sharing
Reference link: https://coderwall.com/p/adv71w/basic-vim-commands-for-getting-started
https://itsfoss.com/linux-command-tricks/
Recordings link: To be added

Session IV - 25th Sep 2021

Source control - How to use Git
Git becomes the de-facto standard for Source code management.
Explaining how to use them effectively when you work in a collaborative environment

Presentation link: To be added
Reference link: To be added
Recordings link: To be added

Session V - 1st Oct 2021

Relational & Non relational Databases - MySQL, MongoDB, Distributed DB basics with examples

Presentation link: To be added
Reference link: To be added
Recordings link: To be added

Session VI - 9th Oct 2021

Web app frameworks - flask, django
Building basic applications using Flask
REST Apis - Building REST apis with flask
Understanding the basics of REST Apis

Presentation link: To be added
Reference link: To be added
Recordings link: To be added

Session VII - 16th Oct 2021

App deployment & hosting - Heroku, AWS, Azure, GCP
Web servers - Apache/nginx/ha proxy
Web development basics - HTML/CSS/JS basics with examples
Javascript frameworks - node/react

Presentation link: To be added
Reference link: To be added
Recordings link: To be added

Session VIII - 23rd Oct 2021

Networking & Security - https/websocket/webrtc/cryptography
Building web apps - Flask + react.js demo app
API integrations - Third party integrations - Twilio/Sendgrid

Presentation link: To be added
Reference link: To be added
Recordings link: To be added

Session IX - 30th Oct 2021

Microservices, Containers, Serverless - Lambda, Docker & kubernetes
DevOps & CI/CD - Ansible/Jenkins/Prometheus/Grafana

Presentation link: To be added
Reference link: To be added
Recordings link: To be added

Session X - 3rd Nov 2021

Build an end-to-end app and deploy - vercel, heroku app deployment

Presentation link: To be added
Reference link: To be added
Recordings link: To be added

Thank you!

Karthikeyan NG
intrepidkarthi@gmail.com
http://www.intrepidkarthi.com