Tips for Succeeding in Computer Science

Explore top LinkedIn content from expert professionals.

Summary

Succeeding in computer science means not only understanding technical concepts, but also developing practical skills for solving real-world problems and working well with others. Growth in this field comes from hands-on experience, learning from mistakes, and continually improving both your coding and communication abilities.

  • Prioritize fundamentals: Focus on mastering the core principles of programming and problem-solving instead of getting distracted by ever-changing tools or frameworks.
  • Build and refine: Tackle projects and challenges, learn from debugging, and don’t hesitate to iterate on your solutions for deeper understanding.
  • Communicate clearly: Share your ideas, ask for help when needed, and document your work so it’s understandable for both yourself and your teammates.
Summarized by AI based on LinkedIn member posts
  • View profile for Abdirahman Jama

    Software Development Engineer @ AWS | Opinions are my own

    45,175 followers

    I'm a Software Engineer working at AWS, with over 7 years experience. The last few years of my life has taught me a lot. If I could talk to my younger self or any other junior engineer for that matter, here's what I would tell them:  [1] Learn fundamentals, not frameworks. Frameworks change quickly, but core concepts stay with you your whole career. Strong fundamentals make you adaptable, confident, and effective anywhere. [2] Design before coding. If you can’t explain your solution clearly, then the implementation will be unclear too. Draw it. Write it. Challenge it. Then build it. Good design reduces rework and gives you a direction worth building. [3] Read code, not just write it. Study the systems you work in and understand why things were built the way they are. Reading code builds real context — and context makes you faster, wiser, and more effective. [4] Write for humans first, computers second. Choose clear names, small functions, and simple logic, and follow the practices set by your team and engineers before you. Maintainable code makes everyone’s job easier. [5] Know when not to build. Not everything needs more code, sometimes the best solution is removing or reusing what already exists. Favour simplicity, avoid premature abstractions, and keep your systems lean. Code is a liability. [6] Write things down. Design docs, architecture notes, and thoughtful PR descriptions show your thinking. Writing brings clarity, and clarity helps the entire team move faster. [7] Don’t shy away from operations / devops. Many engineers avoid this work, but understanding how your code runs in production is one of the most important parts of the job — build it, own it, run it. It leads to safer judgement. [8] Become great at debugging. Most engineers can build features, but not many fewer can fix issues under pressure. Learn how to troubleshoot calmly using logs, tracing and systematic problem solving. [9] Own your career path. If you’re in a job that doesn’t help you grow, work with your manager to change that. If things still don’t improve, find a place that supports your goals. Your career is yours to steer. [10] Communicate clearly and earn trust. Be honest about what you know and what you don’t. Listen carefully, share progress early, and follow through on what you promise. [11] Keep pushing yourself and don’t give up too quickly. There will be tough days and difficult problems. Stay patient, and keep pushing through. Growth often happens right after things start feeling uncomfortable. Resources to level up as software engineer: → The Pragmatic Engineer with Gergely Orosz for industry insights. → System Design One by Neo Kim for system design fundamentals. → Coding Challenges with John Crickett for real world project ideas. → Connect with engineers like Anton Martyniuk, saed, Alexandre Zajac, Demitri Swan, Sanchit Narula, Daniel and Mohamed A. for daily engineering wisdom. #softwareengineering

  • View profile for Rajya Vardhan Mishra

    Engineering Leader @ Google | Mentored 300+ Software Engineers | Building high-performance teams | Tech Speaker | Led $1B+ programs | Cornell University | Lifelong learner driven by optimism & growth mindset

    113,124 followers

    I’m 39. Here are 10 things I wish I knew at 21 about programming. (After spending 15+ years working as a software engineer at Amazon, Paytm, Google & startups) If you’re just starting out or in your 20s this might save you years of trial and error.  [1] You don’t need to know everything   There’s too much in tech frameworks, tools, languages.   Mastering one thing deeply beats being average at 10. → Learn one language well.   → Go deep. Build. Break. Rebuild. Depth compounds. Breadth follows naturally.  [2] You won’t remember everything   You’ll forget syntax. APIs. Even concepts. That’s fine.   What matters is knowing how to figure things out when you need them.   Google, docs, and AI tools are part of the workflow.  [3] Tutorial hell is real   Watching videos ≠ learning.   You feel productive but can’t solve a single problem on your own. → Limit tutorials.   → Write code. Break things. Debug.   That’s how you learn.  [4] Don’t compare your journey   Some start at 14. Some at 24.   Some have CS degrees. Some don’t.   The only person you should compete with is who you were yesterday.  [5] Communication > Code   Your ability to explain things clearly is more important than your ability to write clever code. → Speak up in meetings.   → Write clear docs.   → Ask better questions. This alone can 2x your career growth.  [6] Focus on solving problems, not writing code  Code is a tool.   The real value is in solving real-world problems. → Understand the business impact.   → Ask “Why?” before “How?”  [7] Learn by reading code   You’ll learn more by reading code from good engineers than by doing 100 tutorials. Open-source projects. Internal repos. PRs from seniors.   Study their structure, naming, logic.  [8] Ask for help (early and often)   Struggling silently is not noble.   It’s inefficient. Asking questions shows you care enough to grow.  [9] Build side projects   Nothing teaches you more than trying to build something from scratch. You’ll learn architecture. Debugging. Tradeoffs.   And you’ll finally understand why those tutorials taught you what they did.  [10] Growth is slow until it’s not   You’ll feel stuck for months.   Then suddenly everything will click. Trust the process. Keep showing up. Your future self will thank you.

  • View profile for Rahul Pandey
    Rahul Pandey Rahul Pandey is an Influencer

    GM of Coding, Handshake. Founder at Taro. Prev Meta, Stanford, Pinterest

    138,288 followers

    A collection of learnings from my 15-year Software Engineering career at companies like Meta, Pinterest, and Walmart. 1. To learn how to code, you must write code in an unstructured environment. Tutorials can help initially, but don't get stuck in tutorial hell: these engineers can't actually solve problems. 2. The only way to learn how to write good code is to write a bunch of terrible code first. It is fundamentally about the struggle. 3. Debugging is effectively playing a game of detective. Becoming an expert debugger in a large, complex codebase will make you extremely valuable to any company. 4. For software engineers, most of what you learn in school won't be relevant on the job. The biggest value of a university education is your network. Invest in getting to know students and faculty. Don't worry too much about grades. 5. Networking is about building long-term relationships built on trust and value. Give more than you take and your network will grow rapidly. Remember this phrase: "Your net worth is your network." 6. Everyone in tech faces imposter syndrome. Consider imposter syndrome as an opportunity to learn from people who are further along. Actively seek out feedback and talk to people. 7. Tech interviews are immensely broken and your interviews will probably differ from your job. View interviews as a learning opportunity where you get to meet some other cool, smart people. 8. Realize that the average person will spend < 10 seconds scanning your resume. No one is as interested in you as you, so you need to keep things short. Your resume should be 1 page long. 9. Feedback is the secret to rapid career growth. Make it easy for others to give feedback by introspecting and asking for specific parts of your behavior. A lazy “Do you have any feedback for me?” will often be met with a similarly lazy “Nope, you’re doing great!” 10. If you're not sure what company to join, go to a larger, well-respected company (FAANG) as your first job. Junior engineers benefit from the consistency and stability of Big Tech. 11. Onboarding is a magical time when you get a free pass to ask as many questions as possible, request people's time, and build foundational relationships. Work with a sense of urgency when you're new to a company. 12. The relationship with your manager is the most important relationship you'll have in the workplace. You should proactively drive meetings and feedback with your manager; don't wait for them. 13. Getting promoted as an engineer is not just about skill or output. You also need scope and trust. Most promotions are deliberately planned months in advance. If a promotion is important for you, bring it up with your manager well in advance. 14. Most engineers don't negotiate their offers, but they should. The most important tool for negotiation is leverage. This means competing offers. I put this all together in a 1.5-hour video here: https://lnkd.in/gAH4Q2pD

  • View profile for Chandrasekar Srinivasan

    Engineering and AI Leader at Microsoft

    49,733 followers

    If you're in your 20s as a software developer, here are 21 rules to remember to become an amazing engineer when you hit your 30s. I was ‘YOU’ once. These are lessons nobody taught me, but they came with experience that helped me make a strong impact at Microsoft with my team. 1. Don’t get too attached to your own code; stay open to improvements. 2. Complexity will come back to haunt you during on-call rotations. 3. Aim to resolve underlying issues, not just the surface symptoms. 4. Remember, users care about the functionality, not the elegance of your code. 5. Keep track of design decisions and document them for future reference. 6. Every piece of code you write adds maintenance risk—think twice. 7. Software is a continuous process; it’s never truly “done.” 8. Make sure you fully understand the problem before jumping into solutions. 9. Write clear and informative commit messages for your future self and others. 10. Avoid adding dependencies that aren’t essential to reduce potential issues. 11. Code reviews are a great way to share knowledge within the team. 12. Every choice in code is a compromise; weigh the pros and cons. 13. Remember that an estimate is not a guarantee. 14. Release early and refine often; iteration improves quality. 15. Following coding standards helps avoid unnecessary debates. 16. Design with future maintenance in mind to save effort later. 17. Everyone has a hard time understanding code they didn’t write. 18. Don’t hesitate to ask for assistance when you’re stuck. 19. You’ll always be learning something new in this field. 20. Simplicity in design pays off in the long run—don’t overcomplicate. 21. Don’t assume your first solution is the best; iterate and refine.

  • View profile for Anshul Chhabra

    Senior Software Engineer @ Microsoft | Follow me for daily insights on Career growth, interview preparation & becoming a better software engineer.

    64,713 followers

    Spending time on DSA was the toughest and most rewarding part of my CSE journey in college. It’s what helped me crack Samsung, Microsoft, and Walmart. If I were starting from zero in 2025, here’s exactly how I’d approach DSA again with 10 lessons I wish I knew earlier: 1. Learn One Language Well Don’t waste weeks picking the “best” programming language. C++, Java, Python, it doesn’t matter. If you know how to reverse a string, loop through an array, and use hash maps, you’re ready to start. 2. Build Confidence First Solve 10-20 easy problems to get your rhythm. The goal is to build confidence, not mastery. 3. Avoid Over-Planning Resources You don’t need the perfect roadmap before starting. Pick any decent resource: Striver’s Sheet, Neetcode, or GFG, and just begin. 4. Focus on Patterns, Not Problems Instead of memorizing solutions, focus on patterns like sliding window, recursion, and dynamic programming. 5. Don’t Fear Stuck Moments The biggest growth happens when you’re stuck and trying to debug a broken idea. Spend 20-30 minutes struggling before checking the solution. Look at hints but not the full code. 6. Proof Over Solutions Don’t just implement the solution prove why it works. For Example: For binary search, explain why the low = mid + 1 and high = mid - 1 updates actually work. 7. Move Up the Difficulty Ladder Once easy problems feel repetitive, start tackling medium-level problems. They teach optimization and edge cases. Example: Go from “Climbing Stairs” (easy) to “Longest Increasing Subsequence” (medium) to level up. 8. Track Time Taken Per Problem Solving a problem in 2 hours vs 20 minutes is a massive difference. Use timers to build a sense of speed vs quality. Initially, aim for accuracy. Later, focus on speed once you’ve grasped the concepts. 9. Practice Random Problems When doing revision, randomize your practice. In interviews, you won’t know the topic beforehand, so build this muscle. Instead of only solving dynamic programming, mix it up with graphs and arrays. 10. Join Contests for Real-Time Pressure Live contests (Leetcode, Codeforces) test your ability to think fast under pressure. Participate in at least one contest per week to sharpen your competitive edge. If you stick to it, the skills you develop here will stay with you for life whether it’s in interviews, building scalable systems, or leading engineering teams. Start today. The results are worth it.

  • View profile for Bob Pease

    VP of Engineering | Technology & Startup Enthusiast

    2,688 followers

    I’m often asked by software developers how they can grow—especially those early in their careers. I rarely tailor my answer to someone’s skill level. The truth is, the same habits that help you level up early on will carry you through your entire career. Here are six I always come back to: 1. Ask why before you build. Don’t just take a ticket and run with it. Ask what problem it solves and why it matters. That context will make you 10x more effective. 2. Ship small and often. You don’t need everything figured out to get started. Build something small that works, get feedback, and keep improving. Progress > perfection. 3. Own your stuff. If you built it, you’re responsible for how it works in prod. That doesn’t mean doing everything alone—it means caring enough to follow through. 4. Review code like it’s part of the job. Reviews aren’t a favor—they’re how you learn. Read more code than you write and ask questions when something doesn’t make sense. 5. It’s OK to mess up. Just learn from it. Mistakes happen. What matters is that you dig in, figure out what went wrong, and share what you learned. 6. Build side projects. Nothing accelerates learning like building something end to end—design, code, bugs, and all. You’ll gain confidence, pick up new skills, and maybe even build something useful. — If you’re doing those things, you’re way ahead of the curve. Keep showing up, stay curious, and keep shipping.

  • View profile for Raman Walia

    Software Engineer at Meta | Follow for content on Software Engineering, Interview Prep and Dev Productivity

    34,341 followers

    I am 47. I wish I knew these 10 programming lessons at 27. (After working at Meta, Adobe and EMC, and mentoring 100s of students) 1. Ask for help Suffering silently isn’t noble—it’s just... inefficient. → Questions = growth. 2. You don’t need to know everything Tech is huge. One needs years to know all of it. You’re not expected to be a jack of all trades. → Go deep on one thing. Get scary good at it. 3. Tutorial Hell is comfortable—but dangerous Watching 8 hours of videos ≠ learning. → Code. Break it. Fix it. Repeat. 4. Code is not the goal - Understand business problems - Ask ‘Why’ before ‘How’ - everytime you try to code 5. Stop comparing timelines Some start at 14. Some start after their 3rd career change. → Focus on only YOU 6. You won’t remember everything Syntax? APIs? Gone in 3...2...what was I saying? → Master the art of Googling + reading docs. 7. Communication > Clever code If no one understands your brilliance, does it even exist? → Explain clearly. Ask better questions. Write clear docs. 8. Reading code is more imp than writing Good code teaches more than 100 tutorials ever will.. → Dig into open source. Or your coworker’s PRs. Study. 9. Dots will connect You’ll be stuck. Then suddenly: boom. It all clicks. → Trust the process. Put in the reps daily. 10. Side projects = cheat codes Keeping side projects is fun and they teach you a lot (Right now I have 2 personal side-projects around Machine learning) Raman Walia

  • View profile for Faith Wilkins El

    Software Engineer & Product Builder | AI & Cloud Innovator | Educator & Board Director | Georgia Tech M.S. Computer Science Candidate | MIT Applied Data Science

    7,987 followers

    Why do 50% of Computer Science students struggle to become good software engineers? This is a question I think about a lot, especially because I’ve seen so many students with potential lose their way. Here’s what I’ve noticed: 1️⃣ Focus on theory, not practice: Many students spend years learning about concepts but don’t apply them in real-world projects. Being a good engineer is about building things, not just reading about them. 2️⃣ Lack of problem-solving skills: Coding isn’t just about writing syntax; it’s about solving problems step by step. Sites like LeetCode or HackerRank can help, but consistent practice is key. 3️⃣ Ignoring soft skills: Being a great engineer is also about communication, teamwork, and understanding user needs. Tech skills will get you the job, but soft skills will help you grow. 4️⃣ Fear of failure: Many students get stuck in “tutorial hell” because they’re afraid to build something and fail. But failure is the best teacher. 5️⃣ Lack of guidance: Without mentorship, it’s easy to lose direction. Having someone guide and push you makes all the difference. I’ve personally faced some of these challenges too. In my journey from struggling to thriving as a software engineer, I realized the importance of action, mentorship, and consistency. What do you think stops students from becoming great engineers? Let’s discuss! #softwareengineer #faithwilkinsel

  • View profile for Sajjaad Khader

    Software Engineer | Founder, Advisor & Investor | M.S. Computer Science, Georgia Tech

    83,535 followers

    If I could go back and give my 20-year-old self one piece of advice: Real skills are learned on the job, not in the classroom. When I finished my computer science degree, I thought I was ready for work. I graduated with a 4.0. I mastered data structures and algorithms. I had the diploma. But once I started working, I quickly realized none of that guaranteed success. Debugging messy systems. Collaborating across teams. Learning new frameworks on the fly. Those were the real tests. And no classroom could have prepared me for them. A degree is a foundation, not a finish line. Curiosity, grit, and adaptability are what make you thrive. Here are my biggest takeaways: For students 1. Focus on learning 𝗵𝗼𝘄 𝘁𝗼 𝗹𝗲𝗮𝗿𝗻 because tools will keep changing. 2. Do not stop at assignments. Build projects that solve real problems. For employers 1. Don't filter by GPA or school name. Filter by skill, experience, and adaptability. 2. Invest in mentorship. Hungry learners become your strongest engineers. ♻️ Repost if you agree that real growth happens on the job.

Explore categories