Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

I liked the article because I feel like I'm at the stage of my career that I need to be a mentor. But at the same time I don't feel like I know enough about everything.

Here is someone writing books and programming iOS apps who can still have his mind blown by, what seems to me, some fundamental concepts. I think there are a lot of people out there doing real work - who can benefit from a little push. that makes me feel that a) I have things I can teach and b) that its ok to not know everything - even what others may think is "basic" stuff.



sort by: page size:

I think you're underrating the significance of the rate at which one is able to learn and acquire knowledge. I'd argue that this is actually more important than experience within a large organization with plenty of mentorship.

This guy was able to accomplish a ton in a year, acquiring the technical chops to get offers at top companies like Google. If he can do that in one year, imagine where he'll be in another year.


This is why I'm not a big fan of "Things that any [insert career] should know" or "things I wish I'd known" type of articles. The path to mastering something is always unique, messy, and unstructured. It's impossible to replicate your journey by telling someone to read X, read Y, and do Z. All of that needs to be internalized as part of a slow journey that can't be accelerated too much. Your brain needs to learn how to filter noise, find patterns and get used to thinking a certain way. You might lose a year learning something that became obsolete; guess what? You still learned tons from that. We don't need to babysit junior people too much. They can find their way into becoming great SWE just like any great SWE who complains they learned something too late in their careers or that nobody told them something before did.

This is fantastic advice for people who want to learn the new things that they need to learn. However, not everyone does, and that's perfectly OK. I know we're biased towards programming here, but let's flip your example around: I know how to code, but I don't know how to do enterprise sales. Yes, it behooves me to learn something about it, but if I can hire someone to do it for me, why shouldn't I? My goal is to always hire people smarter and more competent than myself at the thing that I'm hiring them to do. I don't need to be the best at everything; I'd much rather be the best at what I'm best at :)

What I have observed, as more and more people from a wider background enter into computer science and software engineering, is that it's not so much what they know or don't know that matters, but rather, what is their attitude towards learning something they don't already know.

If they embrace new knowledge and appreciate those who bring it to them, then I couldn't think of someone better for this art. If, on the other hand, they dismiss anything that they don't immediately see the value to, even at the behest of someone either more senior or experienced, then I would say, that is the red flag.


You can spin that around to a positive if you want to. I'm in a similar situation where I know just enough about a lot of things and that is my strength. I can be assigned to pretty much anything tech related which means I see a lot of different projects and roles (as a freelancer) which keeps things exciting for me instead of burning out after 6 months on the same mobile app with the same tech stack and the same people.

Yeah, agreed. I guess the real point I want to make is that you need to forgive yourself for not knowing everything, and don't delude yourself into thinking your value as a human being is based on how much you know about computer stuff. It's a fine thing to learn, and we have a professional responsibility to learn on a constant basis, but if your whole identity is defined by your work, then you're building your house on sand.

No your article is very good, reading it on pocket at the moment.

I think in terms of development I think its good to have a good idea what's going on end to end, I would consider that normal. However, its good to have a specialism too, that is be a master of one or two things. Its not much to ask someone to be proficient in a programming language or 3 and a database of some description, I don't think.


The ability to continue learning new things (and also implementing them) over the course of your entire career may be less common than you think.

Doctors and lawyers have a large body of working knowledge that they must learn, but the portion relevant to their specific practice might not change that much over their entire career. Software writers can get started on a tiny corpus of knowledge, but a huge portion of it has to be updated on a nearly constant basis.

It's like accelerating over the entire length of a foot race, except instead of sprinting the 50m dash, you are running an ultramarathon. By the time you retire, you have already forgotten more things than most people have ever bothered to learn.

I have already written software for doctors and nurses, lawyers and paralegals, rocket scientists, aircraft pilots, and other software writers like me. Every job required learning a significant amount of domain knowledge, even if only on a temporary basis. As a result, that quote by Heinlein from Time Enough for Love--the one about specialization being for insects--definitely applies. I can now convincingly bullshit any non-expert on practically any topic after only about 2 days of Internet research.

That's because I have learned to identify and focus upon the core elements of a problem and discard all irrelevancies. It may be odd to you, since you probably have the same skill now, but the vast majority of humanity is completely incapable of viewing a problem objectively. That is why we are valuable. We are the Professors surrounded by billions of Gilligans. We are the MacGyvers in a world of ticking time bombs. Bunsen and Beeker to a bunch of talking animals. Lisa Simpsons beset by Homers. Farnsworths (and Wernstroms) babysitting Benders and Frys.

That's why we get paid the big bucks.


To be fair I think it is some proof that the person can learn all of this stuff and therefore they might be clever enough to learn new tech as well.

Although I don't find it very relevant. When I was fresh out of university, I was good with algorithms / data structures (neither of which I use much in actual work), therefore able to pass leetcode interviews just fine. Yet it was at the time challenging for me to learn new frameworks and I found all of the tooling I never heard of rather confusing.


I don't understand this article. I learn as much as I have time to learn while still getting all my work done. I'm constantly trying new things and developing my expertise on a number of topics that I don't currently consider myself an expert in. It seems like other people are doing this too so what's the issue?

Agreed, however I do believe that each person should have a basic understanding of at least one level below where they're working at.

I'm not saying you shouldn't always strive to learn new things (for your own personal growth and curiosity), but I think it's important to point out that the link between being a developer and knowing about these things-- esoteric topics of applied Mathematics-- is pretty weak.

Imagine a carpenter spending their time getting a chemistry degree in order to better understand how wood glue works.


One other aside, I'm often reminded of:

There's a saying "Those who can't do, teach."

I think, on the contrary, a good teacher has to not only be an expert on a topic, but has to poke and prod it further, then distill everything about it down to the essentials to turn it into teachable lessons.

Anyways, I figure that I have a certain amount of knowledge in my head. It would be nice if I could spread that knowledge as far and wide as possible, since that could ignite a bit more passion for good software and solid automation in others.


Yeah, the trick in my opinion is to find a good enough book or guide on new features with which you can skim and familiarize yourself. If you don't understand when you might apply something, go figure that part out. Then work on a project and when it seems like you might need that concept, go read about it in more detail. In terms of real world work, having a very broad, surface level knowledge of many concepts and when you might apply them often comes in more useful than a very in depth knowledge of a few specific concepts.

It's not just all the new stuff that's emerged in the last 30 years. I feel like I didn't really understand a lot of the fundamentals like I thought I did back in my 20s and that there were some major holes in my education that only became apparent after some years of experience in the field. Often you don't know what you don't know. I now know there's a lot I didn't (and don't) know and I think that's a valuable thing that mostly only comes with experience.

I completely agree. Necessary, not sufficient. Covering the specifics, which are just the tools and a basic foundation, is empowering and motivating IMO. A big part of learning basics like this is just learning the vocabulary for describing the larger challenge you want to tackle. Knowing that you have the tools and the basics is necessary for learning more, and ultimately, getting to the point of building, polishing and delivering.

While I agree that knowledge of what's below those abstractions is important, you also need to cater to your audience. Getting something working on the screen in front of you is exciting for new folks; lining up little victories with increasing complexity feels like a path that would be more enjoyable to follow. As long as the person maintains a curiosity about the underlying technology, they can work down into the lower layers as their interest dictates.

Keep at it. I think that it is often the case that the more you do know the more that you realise you are ignorant about. You may still be a world class expert!

So keep your mind open, keep reading, keep learning, keep practising your art.

I've just started a PhD after 30 years of start-ups etc, and I am aware that people's view of my skills is often much more positive than my own view of my skills. And I'm also spending time with other entrepreneurs who seem better than me in every dimension!

Keep humble, but keep going.


Why is this post not getting more comments!? It's one of the most important dynamics driving innovation in technology.

On the one hand, the misconceived confidence of an unskilled newbie gives him/her the motivation to dive into the unknown, tackling difficult problems that others have tried and failed. But he/she does not know that. If the person is smart and persistent enough, there might be a chance of a breakthrough. I think there are plenty of examples in science and mathematics where a new perspective from an unknown scholar helps solve a hard problem.

On the other hand, the skilled people, knowing the particular problem is hard, won't bother to try. And the consequence is too much knowledge is a impediment to progress.

next

Legal | privacy