Advice for a reader: getting started in computer science

Advice for a reader: getting started in computer science

Every once and a while someone writes to me out of the blue to ask for my advice. And sometimes fate surprises me with a few unanticipated free minutes and I am able to write back. Yesterday, a young man named Mason Moran, who is about to start his computer science undergraduate studies in the Fall after a tour of duty in the Navy, wrote to me and asked:

Is there any advice you can give someone starting in this field that will help them thrive?

I had a last minute change in my schedule that freed up a handful of minutes, so I spent some time replying to Mason. I thought that I would share my slightly edited response on LinkedIn on the chance that it might be useful to other folks. The advice could, IMHO, be useful to folks other than aspiring computer science students.

Mason,

Thanks for reaching out. First off, my Dad was in the Army in Vietnam, and my Grandfather served in the Navy in WWII. You have my appreciation and gratitude for your service.

My biggest pieces of advice to you, and the things that have helped me out over the years, are: be curious; be confident; be persistent; have a plan; and don't be afraid to take intelligent risks.

The hardest one of these 5 things for me was being confident. I grew up in rural central Virginia at a time when computers were scarce, and where the schools weren't really set up to help incipient computer scientists get their start. My parents hadn't gone to college, and the most likely thing for me to do when I graduated high school would have been to go into construction which is what my father, grandfather, and great grandfather had done. I chose a different path. But, for a very long time, I felt like an imposter on the path that I chose. I felt like I didn't belong wherever I was: in the internships that I got; in graduate school; at academic conferences where I was presenting papers I had written; and even at Google and my startup AdMob.

I think that the biggest reason that I felt like an imposter was that I was ambitious, and was always pushing myself really hard, trying to master difficult material, or putting myself into situations where I was surrounded by a lot of other capable folks and doing things at or beyond the limits of my experience. I hadn't accepted that pushing myself this hard was hard. No one ever told me that it was normal to struggle a little bit with hard things. I was constantly convinced that I was the only one struggling, which just made the struggle worse.

A good story to illustrate my "imposter syndrome" is from my freshman year in college by which point I was convinced that I wanted to become an expert in programming languages and compilers, go to graduate school, and eventually become a professor who taught these subjects at a good University. At the time it seemed to me that a natural first step would be reading and understanding papers from prominent journals like ACM Transactions on Programming Languages and Systems (TOPLAS) and Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation (PLDI). I remember the first issue of TOPLAS that I picked up had papers in it with titles like "An interval-based approach to exhaustive and incremental interprocedural data-flow analysis" and "win and sin: predicate transformers for concurrency".

I looked at these papers as an 18 year old first year CS student and was totally lost. From my vantage point at that time I could barely conceive of a version of me who would be able to understand this material, much less master it. But I had more stubborn in me than self-doubt, so, I kept reading and attempting to understand the papers in these publications, very slowly at first, stopping to read some of the references that I needed to understand before I would have any hope of comprehending the papers themselves. Over time I got faster, and required less background research to fill in the holes in my understanding. After a few years I felt less incompetent. By my first few years of graduate school I was publishing my own papers in peer-reviewed conference proceedings (although funny enough, never TOPLAS or PLDI). And by the end of my graduate career I was being asked to sit on peer review committees for conferences where I would have to read stacks of submitted papers relatively quickly, provide critical feedback to the authors, and give my recommendations to program committees about which manuscripts I thought were publication worthy.

It took years of hard work to get to that level of mastery, but the task wasn't impossible, even though I thought it might be at the beginning.

Giving yourself permission to struggle with hard things is important. It's normal. Everyone encounters difficulty, and overcoming difficulty usually implies struggle. The only folks who don't struggle are those who don't challenge themselves enough, or those who give up too easily. So push yourself and embrace difficulty when it comes. Nothing worth doing is easy.

As you study computer science, you will find that some things, e.g., acquiring a new skill, being able to complete a meaningful project, tracking down the root cause of a pernicious bug, developing a new algorithm, proving an especially tricky theorem, or having enough impact in your job to be recognized by your peers and your company, can take a long time and require a lot of effort. Having the persistence to stick with these challenges until you've conquered them is more often than not the path to a career filled with fulfilling and distinguished accomplishments.

Curiosity can be a hard thing to cultivate if you don't have it, but, being interested in lots of things, especially in the field of computer science, can be an extremely important trait to have. Computer science is a broad field, and one that changes constantly. If you are not curious about things beyond the narrow slice of the world of software that you're focused on for your work, your hard-won skills can become irrelevant without you noticing. Being curious about what's happening around you and in the industry at large, and acting on that curiosity to learn and grow can help you stay on top of your craft, and open up opportunities that you might never have if you allow your skills to ossify.

Finally, having a plan for what you want to accomplish over a multi-year time horizon can be an amazing asset for you. It can help you focus when you're struggling. It can help you use your time well. And it can even help you figure out which risks are worth taking. For a very long time, from age 16 through 30, my plan was to be a computer science professor. Having that plan helped me not be distracted over the long years I spent in grad school, and informed which risks I took and didn't take. A very short while after I joined Google, my plan was to be a head of engineering at an important Internet company. (I had no idea what that meant, but it was my plan anyway!) That plan helped me decide which opportunities to pursue, which holes in my skillset to fill, and which risks were worth taking, particularly in terms of taking on new challenges and roles.

It's totally ok, and natural for your plan to change over time. Even if it is going to change, having a plan can be a very, very useful tool, and the difference between a life where you feel like you're being tossed around by forces beyond your control versus feeling like you're driving and that your destiny is mostly in your own hands.

Hope that helps. Good luck.

-Kevin

Charles Garcia

NerveLink Solutions ?? Privacy & Identity Management ?? Data Security ?? Business Growth Solutions ?? IT Manager

4 å¹´

This is inspiring! Advice is a piece of information needed for you to grow and excel in what you already do. Never let yourself limit from learnings you may experience through time. Be curious enough what awaits in your door waiting to be discovered. And be confident that you can give it a go no matter where the instances may take you.

赞
回复
Dr. Surendra Soni

Leadership Thinker, Writer, Speaker Founder of World Spiritual Centre

7 å¹´

Wonderful and invaluable advice...

赞
回复
Abhinav Kr. Singh

Senior Product Manager at WegoPro (Part of Wego) | Ex-Entrepreneur | EdTech | Fintech | Travel-tech

7 å¹´

Amazingly stupendous....

赞
回复
Clint LeRoy

Problem Solver / Innovator / Investigative Technologist / Humanitarian / Performance-Enhancement

7 å¹´

These same visual simulations can also be used in any Innovators designs, what comes up first to use and arrive at solving the problem usually turns into many different varieties to come to the final conclusion. The thrill to look up and actually find your best equation gives you the trust to sit back and fold your arms behind your head feeling accomplished. Innovators success is not the final piece in the equation it is the hunt for the best solution, most will tell you they are still refining the best solution. Ask any hunter making the kill, it isn't the greatest feeling having killed the prey, it's chasing the prey that he will best remember.

Probably a good idea for the 21st century.

赞
回复

要查看或添加评论,请登录

Kevin Scott的更多文章

  • Microsoft at NeurIPS 2023

    Microsoft at NeurIPS 2023

    This week, many AI researchers and practitioners were at NeurIPS 2023 in New Orleans, the largest and perhaps most…

    26 条评论
  • A New World of AI Apps

    A New World of AI Apps

    A few weeks ago at #MSBuild, I got to share our vision for how AI models like OpenAI’s Codex and tools like GitHub…

    8 条评论
  • Announcing GitHub Copilot

    Announcing GitHub Copilot

    Today, GitHub, OpenAI and Microsoft launched a technical preview of GitHub Copilot, a collaboratively developed new AI…

    80 条评论
  • Technology and Creativity at Build 2021

    Technology and Creativity at Build 2021

    Earlier today, I had the great pleasure to virtually address thousands of programmers and developers around the world…

    4 条评论
  • What we’ll need to survive, and thrive, amid economic uncertainty

    What we’ll need to survive, and thrive, amid economic uncertainty

    To make ends meet, my dad was a real hustler. He had been a tall, good-looking center for the high school basketball…

    57 条评论
  • Being of Service

    Being of Service

    I learned two very important things growing up in a small, close-knit community in rural America: that the well-being…

    13 条评论
  • Supporting Entrepreneurs Everywhere

    Supporting Entrepreneurs Everywhere

    I was in Memphis this week to join Steve Case, JD Vance, and a host of entrepreneurs, investors, and community leaders…

    21 条评论
  • Perspective and Remembering my Grandfather

    Perspective and Remembering my Grandfather

    Life comes at you so fast and so intensely sometimes that it can be easy to lose perspective. When you're trying to do…

    19 条评论
  • Browsing the Future

    Browsing the Future

    In the technology business, it sometimes seems like we spend all of our time hitting refresh. Startups come and go.

    6 条评论
  • Ignite 2017 Wrap Up

    Ignite 2017 Wrap Up

    While I’m not in Orlando with our Microsoft teams this week, watching them from a distance gives me an interesting…

    12 条评论

社区洞察

其他会员也浏览了