Over the past 7 years, I have had the wonderful privilege of meeting and talking with hundreds of bright students like you. We've discussed various topics around technology, overcoming challenges, mental health support, and making smart decisions that shape your journey in tech, life, and beyond.
For the past few weeks, I have been working hard to schedule 1-on-1 calls with students to help you find your unique path, define meaningful goals, understand your personal 'why', and explore the different exciting opportunities available to you. My goal is to eventually connect you with amazing direct mentors and supportive free mentorship groups where you can grow alongside other motivated students. However, because so many of you have reached out (which makes me incredibly happy!), it's becoming challenging to speak with everyone individually. That's why I'm writing this comprehensive guide, which has already helped 100+ students from our mentorship programs achieve incredible results in their tech journeys, from winning hackathons and earning fellowships to mastering LeetCode challenges, building amazing projects, and landing great tech roles.
I'm writing this guide to help you focus on important topics that will empower you to define your life goals, discover your deeper 'why', set clear goals and paths in tech, develop a strong framework for discipline, learn about helpful productivity tools, and understand the mindset and life framework needed to achieve both your tech and personal aspirations.
I'll start by exploring the different exciting paths you can take to navigate your career, with a focus on understanding engineering excellence, building your professional brand as an engineer, and securing great placements.
Here are three major areas to focus on during your university journey if you want to become an outstanding engineer and target top tech companies.
The 3-Step Success Framework
1. Mastering Data Structures and Algorithms (DSA)
Why is DSA so important for your success?
Data Structures and Algorithms (DSA) form the essential foundation of computer science, and mastering them will give you incredible advantages:
- Most top companies begin their hiring process with coding assessments that focus heavily on DSA. This is your gateway to amazing opportunities
- Excelling in programming competitions, both locally and internationally, can make your resume truly shine and set you apart
- Participating in prestigious competitions like the International Collegiate Programming Contest (ICPC) becomes possible only with a strong DSA foundation, opening doors to global recognition
How to approach DSA effectively:
- After you've built a solid understanding of any programming language fundamentals, it's time to dive into the exciting world of DSA
- Start by solving 80-90 carefully selected problems, focusing on truly understanding how experienced programmers approach solutions. Check out my detailed post on the best strategies for tackling DSA problems
- Actively participate in local programming competitions and challenge yourself on online platforms like Codeforces, AtCoder, and CodeChef to build the skills needed for ICPC success
You can follow our proven roadmap to confidently complete 100-150+ LeetCode problems in just 4-5 weeks. We've dedicated 3 months to carefully curating the most accessible and effective resources specifically for 🇵🇰 students in this guide. I'll keep this pinned so you can easily access these topics and learn in the most supportive way possible.
A note about international university courses: while courses from prestigious institutions like MIT, Stanford, Princeton, and UNSW offer valuable knowledge, they often present some challenges for our learning style:
- They tend to emphasize heavy mathematical concepts, which can feel overwhelming at first
- They focus extensively on theoretical foundations to encourage research (which is excellent for long-term growth) but may initially limit the practical coding practice you need for platforms like LeetCode
Remember, every expert was once a beginner, and with consistent effort and the right guidance, you can achieve remarkable success in your tech journey!
Roadmap: DW Fellowship DSA Roadmap on GitHub
Some tips for beginners who are starting problem-solving:
- Don't think you can start making solutions right away. The start of doing DSA is solving a lot of problems by learning from others and understanding how they come up with solutions
- See how those who are good at DSA find patterns in solutions
- See how those who are good at DSA come up with ideas
- The initial part (until at least 80-90 problems) is only training your neurons from how others are solving and coming up with the solutions
- DSA is not only about always coming up with solutions. Most of the time you'll have techniques like two pointers, sliding windows, dynamic programming, and greedy algorithms which you just have to identify in the problem, and 95% or even 100% of problems will be solved
- Understand different patterns in each problem you solve, and write down and make notes of the pattern solutions, not the problem solution
- Always revise problems without looking at the code over the weekend
- Make notes, make notes, make notes
- Solve problems in one pattern or one data structure first. For example, first do a lot of problems on arrays and strings (strings are also character arrays) with binary search and sliding windows, rather than solving 10 problems in a day across 4 different data structures
- Master one data structure and one technique at a time
- Solve 100 LeetCode problems. This will make you a centurion, will most probably get you attached to LeetCode, and your mind will now have more tools to think about new solutions
Again, don't try to over-burden yourself with not being able to find solutions right away. Many of the problem solutions are research-based techniques that took even computer scientists time to build, but we sometimes expect young students to come up with solutions instantly. It's not wrong to try, it just requires time, and unfortunately students get discouraged quickly. So just keep learning and solving. With time your mind will start understanding and seeing patterns. That's how you train your mind psychologically. Do everything that makes it easy for you to solve and revise more and more problems.
2. Building Technical Expertise
Why focus on a tech stack?
Technical skills are essential for developing projects and demonstrating your ability to apply theoretical knowledge. Focusing on a tech stack allows you to:
- Build impressive projects that showcase your abilities
- Participate in fellowships and open-source programs like Google Summer of Code (GSoC)
- Win hackathons and contribute to open source, enhancing your resume
Roadmap for tech development:
- Learn a tech stack thoroughly and dedicate 1/3 of your learning time to it
- Create 2-3 solid projects that demonstrate your skills
- Join fellowships and aim for prestigious programs like GSoC (there are over 20 such programs you can apply for)
- Participate in hackathons and contribute to open source regularly
3. Excelling in University Courses / Theory
Why take university courses seriously and learn them again online from YouTube or Coursera?
Courses provide the foundational knowledge necessary for becoming a well-rounded engineer. Important subjects include:
- Object-Oriented Programming (OOP) + Object-Oriented Analysis and Design (OOAD)
- Programming languages and memory management
- Databases and queries
- Operating Systems (OS)
- Networks
- Mathematics courses like Calculus, Statistics, and Linear Algebra, which are crucial for fields like AI and machine learning
Approach to university courses:
- Revise your coursework with online resources like YouTube tutorials and Coursera specializations (e.g., Duke University's C Specialization or University of Alberta's OOAD Specialization)
- Create projects related to your coursework to solidify your understanding
- Prepare for interviews by studying 100-150 advanced interview questions for each subject
- Complete some specializations from Coursera
Your 4-year goals at University can be
- DSA: Doing well in ICPC and other international competitions (Facebook Hacker Cup, Codeforces, LeetCode contests)
- Tech: Cracking GSoC or one of 20+ other programs
- Theory: University course study (with ChatGPT and notes) plus a specialization from Coursera
How to make the best decisions and prioritize well
Balancing passion and market demand
While it's important to pursue your passions, such as robotics, it's also practical to acquire skills that are in high demand in the job market. For example, if job opportunities in robotics are limited, you can learn a more marketable tech stack alongside your passion. This dual approach allows you to secure a job while continuing to pursue your interests.
Progressive learning: level up gradually
You don't need to dive deep into everything on day one. It's more effective to build your skills progressively:
- Level 1: Get a basic understanding by doing stuff from YouTube
- Level 2: Move to advanced courses from YouTube and platforms like Coursera
- Level 3: Engage in tech conferences, open-source contributions, learning from projects, certifications, competitions and hackathons, and reading engineering blogs or research papers
Create a three-month plan to achieve Level 1 in each track (DSA, Tech, and University Courses). This approach ensures balanced development of your skills without overwhelming yourself.
Engineer vs Developer mindset
Most students focus too much on one role, framework, or area of work that they want to do, like front-end developer, back-end developer, cyber security, or AI/ML. But you should understand that engineering is about engineering any software as per the needs. You can love one area more and do it as a hobby, but you can pick any area of software engineering, be it mobile, web, cyber security, or AI, as needed by the job or project you are working on. Become an engineer, not a developer.
Achieving Your Goals: Integrating Deen, Psychology, and Productivity
To achieve success across the three tracks, it's essential to focus on three fundamental aspects.
1. Connection with your Creator (understanding the why)
Improve your connection with your Creator, which helps in beating procrastination and provides a sense of purpose. The type of talks you should find:
2. Psychological understanding
Engage with TED Talks, Mind Talks, and topics on productivity to understand how to maintain motivation and mental health. The type of talks you should find:
3. Framework for productivity
- Write down your thoughts every day for 30 minutes, framing them as questions and seeking answers from talks, lectures, advice, or friends
- Make a detailed hourly schedule using tools like Google Sheets
- Join a study group and use techniques like the Pomodoro method
- Understand dopamine management by limiting social media, using intermittent fasting, taking cold showers, and spending time in sunlight
- Allocate time for family, physical activities, and self-care
Some speakers to listen to:
- Ali Abdaal
- Thomas Frank
A Daily Schedule for Optimal Productivity
Here's a suggested schedule to balance all of these aspects effectively.
1. Morning Routine (pre-breakfast)
- Wake up
- Namaz (prayer): start your day with a spiritual connection
- Deen and Quran: spend time understanding your purpose and strengthening your faith
- Fasting + DSA: fast for the first few hours of the day, and use the early morning hours to focus on DSA problems
2. Breakfast + Mind Talk
- Listen to productivity talks while having breakfast
- 20 minutes of research on anything you want to do: resume? LinkedIn? Business communication? Branding? GSoC plan? ICPC plan? Working at Amazon?
3. Tech Stack Learning
- Dedicate focused hours to learning and practicing your chosen tech stack
4. Lunch + Tech Talk
- Engage with tech talks about high-level engineering topics during lunch
5. Afternoon Routine
- Walk + sunlight: get some fresh air and sunlight. Maybe try listening to this in headphones while taking a walk
- Dhuhr prayer: midday prayer for spiritual refreshment
- Family time: spend quality time with family
- Write your thoughts on paper as questions and find their answers through talks. See why all thoughts are questions
6. University Courses
- Focus on your university subjects, assignments, and projects. Make sure you do at least 2 projects per university course and 150+ advanced interview questions
7. Evening Routine
- Deen Talk with dinner: combine dinner with discussions or talks on better connecting with your Creator and mental well-being through Islam. Some ideas and speakers:
- Review and reflection: review your day's learning and write down thoughts and reflections
8. Night Routine
- Namaz (prayer): end your day with spiritual activities
- Relaxation and sleep: ensure you get enough rest to recharge for the next day
Head over to goaslot.io, create an account, go to the Library, and import the schedule template by Dev Weekends called "Winner Study Schedule by Dev Weekends". Fill it with your own schedule and share your daily progress with me. I'll keep looking into it and suggest where you can do better.
Some Common Questions
Q: Why do we need DSA? I've heard many people say they never used DSA in life and it's not needed in industry.
A: Some companies and people might not have used DSA, but I always suggest students validate advice against data and their own goals. If your plan is to crack big tech companies, look at their interview process and you'll find it starts with a coding round. If your goal is to crack a small company that doesn't ask for DSA, then you might not need it. But the goal should be bigger, right?
Q: I read on the internet that X tech stack has amazing openings and I should only focus on that?
A: Always validate advice against data. Look at the number of openings in different stacks in your current region, and try to learn multiple tech stacks to increase your chances of placement. Build an engineering mindset: if you know one stack, learning another is not that hard because you already have the fundamentals. Learning new languages is mostly learning new syntax, which you can get good at by taking better notes. Frameworks are also just "a way to do things" that you can conquer by learning quickly and taking notes. You don't need to remember everything.
Q: Why should we prepare for local coding competitions?
A: Because they are easier to win, which is good for resumes, helps you network with other strong competitive programmers, connect with coding coaches, and prepares you for good international competitions.
Q: Can we only focus on DSA for big tech?
A: Not really, especially if you are from Pakistan, as you'll have to do something extra in other fields like GSoC, open source, and hackathons so you have better chances of being noticed by recruiters. So DSA, Tech, and University courses are all important because they help you do things that improve your branding.
Q: Should we write articles for branding, and what sort of articles?
A: Share material that is quality, and maintain a balance between quality and quantity. Even once a week or once every two weeks is fine. Completed a course and took notes? Convert notes into articles. Finished a DSA pattern or data structure? Convert notes into articles. Completed a course in tech? Deploy it live, put the code on GitHub, make a demo video, upload it to YouTube, write an article, and link everything. Participated in a hackathon or programming competition? Post it. Joined a fellowship and completed a task? Post it. Completed 30/50/100/200 LeetCode problems? Post it. Solved a nice LeetCode problem and want to share the approach? Post it. Post things that add value, not articles on "var vs let in JS".
Psychological Biases to Understand and Conquer for Productivity
Progress is like a graph
I found something for you so you understand that the psychological bias of over-dwelling on the past, and not being able to do well in one day, is not needed.
You need to focus on improvements per week or per month. Even if some days are 10% to 40% and some days are 80%, your overall progress per week should average 60%+. And if you miss a week or month because of any issues, learn to recover from that. So focus on the average per week and month. Progress happens in the graph overall. You won't be the best every day or every week.
How to instantly feel better
- Angry → drink water + lie down
- Burned out → walk in sunlight
- Overthinking → write
- Anxious → breathe
- Stressed → exercise
- Sad → gratitude
- Lazy → cold shower
- Impatient → reflect on progress
Additional Tips
- Some students focus too much on tech stacks and fall in love with them, neglecting problem-solving skills or other stacks with better job opportunities. Your goal should be to become a better engineer, not just to master one stack
- Maybe start a series of posting your learning (on LinkedIn or YouTube) every day so more people engage with you and you build consistency, like Snapchat streaks
- Your university offers a degree in software engineering, not in a specific technology like React or Python. Be open to learning and applying different technologies and skills. This flexibility will serve you well in the real world
- Sometimes students don't study the tech market (in Pakistan, or the country they are moving to) and focus on a stack with very few openings or low demand and high supply, leading to demotivation. Always focus on market data and pursue two things: one you love and one with better job openings
- Try to study Monday to Friday, use Saturday for revision and some nice talks and fun, and Sunday for family, friends, and relaxing your mind
Some Productivity Tools You Can Use
- Microsoft To-Do for your daily to-do list
- Trello for task tracking
- Alarm clocks to help you remember the hours passing and the next steps
- Extensions to block some sites on your laptop, and uninstalling social media apps on your phone
- Microsoft OneNote or Notion for note-taking
- Google Sheets for schedule development and filling it in every day
If you need to ask any questions, you can reach out to me directly. If you still need a one-on-one session, please ask a DW mentor to share a schedule with you (preferably if you can come with multiple students from your university or friend circle).
Actionable Steps
- Make a schedule and put it in Google Sheets
- Share the Google Sheet with your mentor
- Ask to be added to one of the free closed mentorship groups, which we call Tech Captains / Fellowship Clans
- Ask to share a set of helping material after you have read this guide
- Take 7 days of tasks for each of the 3 paths (Tech, University Courses, DSA) and add progress in your Google Sheet
- Share the sheet in an online meeting every week with your mentor and other Tech Captains
- Ask for the Master Sheet, which has hundreds of resources we prepared and are continuously updating
- Help more students around you
- Become an amazing mentor and continue this chain to help more students and impact the lives of many
Prioritize Your Tasks in Quadrants
This guide takes inspiration from a few core concepts, and the priority matrix is one worth keeping in front of you:
This guide also takes inspiration and learning from the following concepts (to be completed):
- Habit stacking, where we merge talks with our food time to help build new habits easily and do things right after already-developed habits
- Dopamine and understanding the sources, using the right things that make you happy in the long term rather than cheap sources like social media
- Guided tasks for your mind to look at, so it doesn't have to go through many things to figure out what to do next
- Making clear long-term plans and dividing them into 3-month chunks and weeks
- Tracking progress per week so you can tell your mind you achieved something good in one week (except when you are sick), and it's okay even if one day didn't go well
- Gratitude and how it helps your mind see how amazing you are and the gifts you already have, training your mind into giving you more hope
- Giving your mind the right food for thought to train the subconscious slowly with Mind Talks, which unveils many of the complexities of the mind
- Making your Creator part of the equation, so that every time you feel bad you can fall back on Him. Understand how many things get easy when you put your Lord in the equation, and how they get hard when you take Him out
- Understanding that your emotions and thoughts are nothing but questions your mind is trying to ask. If you give it the right answers, your mind and subconscious will be on the right track
- Motivation and inspiration through goals and the why of your life, which builds persistence and discipline
- Learning in public with a series so you stay accountable (Snapchat's psychological streak model for consistency)
Closing Thoughts
Achieving your career goals requires a holistic approach that integrates your spiritual, psychological, and professional development. By following this structured schedule and focusing on continuous improvement in your deen, psychological understanding, and productivity, you'll be well-equipped to excel in your studies and career.
Zeeshan Adil Dev Weekends