background
loading scroll to btns
Back To Home
notes
6 min readAugust 28, 2023

🌀 programming advices

life
hack
advices
programming

learn to read code

  • Be comfortable with reading others' code and understanding it
  • Coding projects from scratch while learning a specific technology is a big waste of time
  • just code the part you're interested in
  • if you want to learn a specific technology and you're following along a course that teaches you that technology,
  • stop trying to code the whole project from scratch, instead just download the source code and code only the part you want to learn not the whole project

A Programming Skill You Don’t Practice

learn OOP well

  • polymorphism
  • inheritance
  • encapsulation
  • data hiding
  • overriding
  • abstraction

learn data structures

  • learn different types of data structures, and how to differentiate between them, and their use cases

learn algorithms

learn operating systems

learn networking

learn databases

  • learn the fundamentals of databases and take a look at the file structure

be consistent

  • being consistent with the way you write code, coding dialy, and being consistent in general is the only way to learn programming

engage with people, be part of a community and make connections

find a mentor

  • mentor === growth
  • a good mentor will have the greatest impact on your growth as a software engineer

have fun with coding

code every day

there is no such thing as best field

focus on basics

explaining is how to measure your understanding

break complex problems into small pieces

enjoy the journey

keep it simple

Write simple code

read the documentation of the things you use

be active on twitter

document it

Document your projects

focus on work-life balance

understand the business

build side projects

don't switch companies a lot

listen to understand no to argue

don't underestimate tasks

be a T-Shaped person

focus on what you can change

depth over breadth

  • learn one programming language and learn it well
  • aim for depth when you first start up

projects, projects, projects

  • favor projects over learning other programming languages

don't memorize the rarely used things

version control every thing

  • mastering git is not optional
  • learn git and GitHub extremely well

learn the terminal (CLI)

  • ditch that mouse!
  • better for your posture

flow state and productivity

  • learn about flow state and how it can effect developer productivity
  • focus!

build a portfolio website

learn basic design

lesser pay and good job is better than higher pay but a worse job

have a defined style and system on how you code and support it with evidences

  • think about what your style is and what your preferences are
  • make art
  • think about you system and develop it

learn from other programmers

  • read other's code and try to understand it
  • ask them for help, advice and tips
  • seek information

my favourite

  • when you solve a problem or build a project search for how other programmer has built the same thing and learn from them

learn debugging and using debuggers

Read line by line and try to identify what is happening in this line

  • isolate the problem to the smallest area of code
  • reduce the amount of possible things that could be impacting your program
  • disable as many things as possible in the code so you can narrow down where exactly you're running into a specific issue.
  • eliminate the things that are not possible to be the cause of the problem
  • go through all the different things that could be causing the problem, check them off one by one, and isolate it to the smallest are, then go through the code line by line
  • cross of as many areas as you can, isolate and get into the smallest part
  • learn how to use a debugger
  • use a rubber duck

the more the merrier

  • coding is much more fun when you have company
  • don't be afraid to be exposed and be known as the dumbest person on the planet
  • seize every opportunity to learn and grow
  • ditch that dreaded imposter syndrome

be lazy

If something will happen more than once automate it

find unicorns

  • great managers are like unicorns
  • the will take your career to the moon and beyond
  • if you got lucky enough to work with a great manager, stick with him as you have found a gem (son of a lucky)

learn deliberately, not habitually

  • focus on growth and impact
  • you don't need to constantly learn new languages and technology
  • be great at what you know
  • learn things on a need to basis
  • invest on things that yields the biggest impacts
  • focus on learning deliberately not habitually

collaborate

Helps you learn more

take breaks

  • your health is just more important

master things that lasts

Instead of mastering a random library or framework, you should master the fundamentals and the that lasts and don't often change

impact

Understand what impact is and always aim to make exceptional impact

  • identify areas for impact
  • measure the impact you make

learn these skills

  • cloud computing (AWS)
  • git & githbub
  • databases
  • linux(file system, system processes)
  • containers (docker)
  • API
  • pipelines (github action, circle ci)

software/solutions architecture

Infrastructure

  • operating systems
  • network
  • system administration
  • security

Web application servers

Browser behaviour

  • cookies
  • local storage
  • session storage
  • http

emerge yourself in the AI ecosystem

  • build technology around AI
  • dealing with LLMs
  • deep learning
  • use AI in all aspects of life

Specialize

Tips

  • keep your resume updated
  • prioritize programming basics (DSA)
  • create a personal website
  • create a LinkedIn account
  • apply for internships as early as possible
  • attend hackathons
  • join a research lab
  • learn from online courses
  • join a computer science club
  • focus on yourself
  • separate the logic from the code => think twice, code once
    • focus on the logic first
    • focus on the code next
  • code always don't watch only tutorial
  • emerge in a community

References

Comments