Click here to Skip to main content
15,608,772 members
Posted 26 Jul 2018

Tagged as



5 bookmarked

I Don't Know

Rate me:
Please Sign up or sign in to vote.
4.94/5 (32 votes)
26 Jul 2018CPOL5 min read
Software development is overwhelming.

I Don't Know

Software development is a huge field, I mean huge. You've got front-end folks, back-end folks, database specialists, architects, the engineers, the folks with the people skills to talk to the engineers, and countless others; it's overwhelming. With technology evolving as fast as it does, it's challenging enough to keep track of your own world, much less the big world revolving around you.

And that's why I'm writing this post. I'm writing it to let you know that it's completely fine to not know something, and often, a simple "I don't know" can make everyone's lives, including your own, much, much easier.

Why Don't You Know?

Software development is a huge field that casts an immense net.

Networking, embedded systems, front-end, back-end, machine learning, web services, architecture, CSS, mobile development, and so many more. Countless facets of the field that you could easily spend your entire career within a single one. Each of them continuously evolving with new features, languages, paradigms, and patterns: it's impossible and not realistic to keep up.

So, don't try.

Learn to say "I don't know" occasionally. Embrace it, think of it not as a weakness but as a strength and a tool that will save you time, energy, and likely heartache.

By putting your pride aside and admitting that you don't know something, you immediately become one step closer to solving your problem.

Let's say you are fresh out of college. You graduated top of your class from a premier computer science program, are on a first name basis with folks at many of the top tech firms in the country and could write any algorithm or solve any programming puzzle thrown your way.

Everything has been a breeze thus far, but after taking your first engineering position, you'll realize that knowing all those facts is very different from being able to solve real-world problems. Your hours of practicing optimizing red-black trees for whiteboard interviews is going to be thrown out the window once you get asked to "update the CSS and fix an issue with the z-index".

You might chalk this up to simply being asked about a topic you hadn't prepared for or that you were just getting into the field. You'd spend a few hours mastering z-indexes and feel on top of the world, at least, until the next curve-ball scenario like that reared its ugly head and started the cycle all over.

The point is this: software simply evolves too rapidly and in too many directions for you to keep up with everything, so don't.

Why Do You Think I Don't Need to Know?

Learning new things takes time, effort, and usually some dedicated practice and experimentation. Building software, despite how it might be depicted on movies and television, is seldom an individual effort.

Professionally, your co-workers and employers generally won't give a damn if you know 100 programming languages, can code a merge-sort blindfolded, or if you know what exactly the volatile keyword in C# does. They do want someone that can do the following:

  • Solve a problem
  • Play well with others
  • Get the job done

I cannot emphasize enough how crucial these three skills are in the day of an everyday developer. While two of them may seem directly technical, the other "plays well with others" is probably the most important of them all and isn't something that is likely going to be taught in a classroom, Pluralsight course, or elsewhere.

Technical ability matters a great deal within your career, but not nearly as much as being able to Google something and play well with others.

You'll likely come across some stellar developers throughout your career, men and women that will just knock your socks off with how amazing they are. It's generally because they can check those three boxes that I mentioned earlier, not because they can regurgitate every keyword in your favorite programming language or write their own sort.

As developers, we are here to ultimately create value by getting things done. Sometimes, we might just "know how" to solve a problem, but often we slam open a new tab and end up at a blog post, Stack Overflow page, or some thread deep in the bowels of our technology of choice to figure it out.

Focus on learning how to be resourceful and how to go about finding an answer instead of trying to keep all of that "in memory" if you don't have to.

Everyone Else Doesn't Know Everything

It's worth knowing that if you don't know something, then you are in luck - it's likely that a lot of other people don't know it either. You aren't alone, and in all likelihood, it isn't just the particular issue that you are stuck on - but most things you run into.

Even the best of developers will have days that are unproductive and countless hours that are wasted away in the abyss of useless search results. It doesn't take a ton of time to dredge through Twitter to find engineers of the highest caliber ranting about forgetting some keyword or command or fighting the entire day with some CSS issue. It happens to all of us and it’s just par for the course when you spend your days creating software.

Focus on learning how to research problems and find solutions instead of attempting to commit everything to memory. It'll save you time, energy, brainpower, and a bit of sanity.

Don't feel down when you find yourself battling a problem or issue because you just simply don't know the answer right away. Find solace in the fact that most other developers, from the most junior to senior, would be in your same shoes, opening their favorite browser and searching their hearts out to find the right way to solve the problem.

Just know if you don't know the answer, the odds are most of us don't know it either and that's completely okay.

This article was originally posted at


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Written By
Software Developer (Senior)
United States United States
An experienced Software Developer and Graphic Designer with an extensive knowledge of object-oriented programming, software architecture, design methodologies and database design principles. Specializing in Microsoft Technologies and focused on leveraging a strong technical background and a creative skill-set to create meaningful and successful applications.

Well versed in all aspects of the software development life-cycle and passionate about embracing emerging development technologies and standards, building intuitive interfaces and providing clean, maintainable solutions for even the most complex of problems.

Comments and Discussions

QuestionI Agree Pin
Eric P Schneider28-Jan-19 11:26
Eric P Schneider28-Jan-19 11:26 
QuestionYup... Pin
Member 41561272-Aug-18 1:19
Member 41561272-Aug-18 1:19 
GeneralAm I the only one who think knowing volatile keyword is important?? Pin
Ruxo Zheng31-Jul-18 17:15
Ruxo Zheng31-Jul-18 17:15 
GeneralMy vote of 5 Pin
Gary Wheeler31-Jul-18 2:21
Gary Wheeler31-Jul-18 2:21 
QuestionRevisiting a subject Pin
leif neland27-Jul-18 21:53
leif neland27-Jul-18 21:53 
QuestionSpot on... Pin
Member 845425427-Jul-18 8:03
Member 845425427-Jul-18 8:03 
QuestionI Agree. Pin
AAL827-Jul-18 7:33
AAL827-Jul-18 7:33 
QuestionWhy do you think I SHOULD know? Pin
Marc Clifton27-Jul-18 5:59
mvaMarc Clifton27-Jul-18 5:59 should try anyways Pin
KBZX500027-Jul-18 6:07
KBZX500027-Jul-18 6:07 
QuestionI Don't Know... LOL... Pin
Kirk 1038982127-Jul-18 5:22
Kirk 1038982127-Jul-18 5:22 
GeneralMy vote of 5 Pin
Carsten V2.027-Jul-18 0:00
Carsten V2.027-Jul-18 0:00 
GeneralAnother fan of "I don't know" Pin
Eric Lynch26-Jul-18 16:24
Eric Lynch26-Jul-18 16:24 
QuestionThanks Pin
Muhammad Usama Khan26-Jul-18 10:56
professionalMuhammad Usama Khan26-Jul-18 10:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.