Photo by Nubelson Fernandes on Unsplash
Pit-falls in a Software Developer's Career
Here are some of the best advises by software engineer, Sahil Gaba.
Bulleting Some of the Best Advice from a software engineer and also a YouTuber, named PowerCouple.
Learn any Object Oriented Programming language (java, c++, JS, python)
While starting build guided projects first, then go for personal projects.
Knowing programming and building side projects is not enough to get into big tech, you also need to do DSA.
Top 5 DSA for interview: Heap, Binary tree, hashtable/hashmap, stack queue, and graphs.
Top 5 Algorithms: Topk elements, sliding window, backtracking, dynamic programming, breath-first search and depth-first search.
Leet code tips:
Top 150 interview questions, then any problem after that.
Begin with the end in mind our goal is to solve a problem under 45mins.
Solve easy problems first to grab tools and clear concepts.
Then medium-level problems and that is sufficient.
Leetcode can be beneficial for interview preparation also
Never do multitask, a master of all is a master of none.
Think problem to understand it and not how to code it.
After thinking properly then start coding.
Practice enough, things will become easy and code will come in handy.
Don't overtime on a problem, 1hr max.
Do it, even if the problem seems similar.
Learn how to write better code from experts.
Embrace rejections, and learn from it, he got 527 rejections before he nailed it.
SystemD interview, resources are educative.io and codekarle.
Soft skills:
Ownership: pick the project and finish it till the end.
Scaleable projects in a resume are a good sign.
Ambiguity: Same problem having different solutions and you have to brainstorm on the solution.
Behavioural Interview: STAR METHOD.
Situation: introduce the situation to the employer and set a context.
Task: Describe the task you had to complete including expectation and challenges it would involve.
Action: explain what you did and how you did it.
End: at the end what was your result, your accomplishment and rewards.
Research before you start, e.g Why to learn that techstack?
Knowing what to work on is much more important than working hard.
Give it time, make long-term goals for years, don't evaluate on a daily basis give some time.
Focus on the Gains and improve your gaps, stop comparing yourself with others, even small contributions matter, focus on yourself.
Don't do it alone, find a buddy or learn in public, this way you will not fall in the trap of pseudo-achievement and depression.
Behave like a programmer, read docs, and be a problem solver.
Build your own personal projects and learn by doing.
Study more in less time, flowstate.
Brain power max when we wakeup.
Study at the morning, focus matters.
Start imp task as you wake up.
Write down what to do in the morning, a day before.
Choose the right task to work on, Task should be engaging neither overwhelming nor easy.
Once assigned tasks are finished you can call it for the day rather than doing more tasks, take a rest, and don't push yourself hard as the journey is very long, slowly and gradually you will make it.
Assign Time for mindful distractions, social media, etc and eventually reduce it over time not overnight.
Make an Artificial deadline, and fix the amount of time to finish a task, this way you will be more mindful and your productivity will increase.
Active recall, rather than making notes make questions and teach what you learnt to someone else, this way you will retain effectively.
HACK YOUR MIND TO CODE
Repetition, apply what you learnt in different projects.
Study less for a longer time, the journey is long dont exhaust yourself.
Don't push hard, slowly and gradually things will click.
Parkison law, time-bounded goal, as we discussed in previous point.
Watching other code wont take you far, Code it yourself.
Collective learning, collaborate with others on platforms like GitHub and do open-source contributions.
Utility-based learning, learn only when you need it, it will retain a longer.
Learn by doing, grab basics first then learn more advanced concepts as you need them.
Fo hands-on learning, learn advanced concepts only when you need it in the project.
Don't try to learn everything, hack your mind!!
AHEAD OF AVERAGE PROGRAMMERS
Learn debugging, breaking + fixing, resource: software debugging on Udacity.
In programming quality matters a lot over quantity, one great strong project at resume can give you an edge.
10x more code reading, read code by professionals on Git Hub, Quality code.
Attend Meetups and conferences, e.g meetup.com
Open source contributions can be a game changer.
Think Like a Programmer
First principle thinking, complex problem to the most basic easy problem!!!!
KISS: keep it simple stupid.
Understand the big picture and break down things to sub-problems.
In programming, you dont need to know everything you just need to know how to find it. Someone has already done it, you don't need to reinvent the wheel.
Be formless shapeless like water, adapt to new reality by learning it, keep up with the trend, be open-minded
Must do projects to be a programmer.
Tic tac toe (object orient design, algorithmic thinking, vs computer, ui/ux)
Tournament runner (dividing teams into groups, different matches etc.)
Class scheduler (assign classes to every student, no overlapping every student attends chosen classes, how to unit test, understanding of open-ended projects, how to think like a software engineer)
DFS/BFS VISUALISER( ALGORITHMS), search and reach the end point, depth-first search and breath-first search.
Deal finder (best prices when shopping online, chrome extension or program, web scraping , etc)
5 important maths skills: combination, logarthmic, factorial, exponential, and Modulus.
Stay inside the circle of control, and away from the circle of influence and external.
In the ideal world, good programming skills and projects are enough to classify yourself as a software developer, but interviewers will ask you specific types of questions, so prepare for the interview and master DSA.
Resume tips:
better follow youtube channel life at google and their videos on how to make a perfect resume.
LinkedIn profile is very important.
Hook recruiters in the first 10 seconds only, could be your projects etc.
30-35 application rejections before a job is ideal.
Big No are: typo, bad grammar, unprofessional emails and non quantifiable. result.
Apply b/w 6-10am, apply within 1-4 days of job posting,
At the end i would like to say the only person who needs to believe in you is you.