Skip to content

badmusamuda/FAGMAN_RODMAP

Repository files navigation

Software Engineering guide using Java as the Foundation.

Summary

  • Step 1: Know how to work with a PC to a basic extent
  • Download any text editor of your choice
  • Start with the fundamentails
  • Know what is an Object, and how it should be implemented
  • You should be able to model an object in a blue print
  • Comfortably run your code from the CMD
  • Know the difference between int and Integer, long, and Long
  • Understand what when to use linear, and non-linear data-strucutres
  • Deep dive into hashing, load factor, and collition
  • When and how to recurse is your best bet, so know if
  • Play with HashMap, TreeMap, HashSet, TreeSet, SinglyLinkedList, and DoubltLinkedList

  • Use this order: Step 2
  • Dive into unit testing via JUnit
  • Test coverage is important, so consider Jacoco
  • You will need external or third party dependency, so setup Maven on your machine

  • Use this order: Step 3

  • Concurrency is your friend, master it
  • Understand what is unsynchronized, synchronized, and asynchrnous processing
  • Be able to implement asnchronous components with your hand without any IDE
  • See what Runnable, Callable, and CompletableFuture can do for you
  • Deep dive into thread lifecycle

  • Use this order: Step 4
  • Play around with servlet, and build a toy project with it
  • Know what http headers are, and how they work
  • Avoid repetitive call, so understand what cookies, and caches are
  • You need a database, go for the simplest(MySQL)

  • Use this order: Step 5

  • With your hand, know how to create a database table
  • Database indexing is your best friend, know how it should be implemented, and the need for it
  • Joining works, understand {INNER JOIN, LEFT JOIN, RIGHT JOIN, OURTER JOIN}
  • Key is the foundation, know the difference between {Primary, Foreign, Unique, and Composite Keys}
  • It must be viewed, it it's too complex. Know to use {View} to simplify database complexity
  • Agrregate function is needed. Learn how they work, when and why it should be considered.

  • Use this order: Step 6

  • As it grows big, learn how to divide it into smaller chunks
  • Deep dive into microservice
  • You need an intermediary, so learn how to create an API gateway from scratch using Jakarta EE. Don't use Spring yet
  • When it's down, you wo't know, so learn how to implemente a service discovery from scratch

  • Use this order: Step 7

  • Your friends and family need to see it.
  • Start with a VPS server, and learn how to deploy your product
  • Anybody, and everybody shouldn't be able to access some resources, see how firewall rules can help

  • Use this order: Step 8

  • Your server is powerful beyond how you see it.
  • Figure out how to connect your server with Github, and how to have many of it running with just once code

  • Use this order: Step 9

  • Are you sure of where your users are coming from?
  • Learn about vertical and horizontal scaling

  • Use this order: Step 10

  • Your code would have grown big, see if SOAP or REST is your best bet
  • If it's not secure, it's not secure. You need to know if session based or token based authentication fit your needs

  • Use this order: Step 11

  • Does it stop working?
  • ping, and then telenet the ip and port
  • You want to have a good sleep, use ELK for logging

  • Find it useful? More is coming



    How you should master it.

    About

    No description, website, or topics provided.

    Resources

    License

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Languages