Is this true?
Posted by xNemesis95x@reddit | learnprogramming | View on Reddit | 53 comments
A few programmer friends told me when I started getting involved with programming that it's actually not that important to know every scrap of code in a language or to know every module, but rather it's much more important to have the ability to use the information in it If in doubt, you can find and understand it via Google.
So, most importantly, you have the ability to understand the logic of programming and the function of a module/code based on the information you are looking for.
Which is why I'm now wondering if this is really the case?
trelayner@reddit
or any AI
plasmana@reddit
To put it concisely, your ability to apply what you know is far more important that how much you know.
sat-soomer-dik@reddit
Of course it's true. How wouldn't it be?
GiftNegative1230@reddit
Angela Yu always says :"we programmers don't remember codes" it is enough to know that the information exists and you can get it whenever you need it.
jim_jhonbean1@reddit
yea
lovesrayray2018@reddit
in a word, Yes, thats fairly accurate
haberdasher42@reddit
That was 4 words.
wiriux@reddit
It was 7 technically
wildgurularry@reddit
Most importantly, they were able to understand the logic of counting and the function of words, even if they didn't know every scrap of how many words were in a the sentence they wrote.
broskioac@reddit
Well, actually, if the returned value is other than the one he did expect, did he really understand the logic of the function?
OomKarel@reddit
You're hired!
light_4seeker@reddit
I guess this is true
dswpro@reddit
For most languages you work in via employment or school, you should be able to understand what a program does with a minimal effort (looking up stuff) . No, you don't need to know all keywords and libraries by heart.
MathmoKiwi@reddit
I doubt there is anybody on the planet who knows everything that there exists in C++
TommyV8008@reddit
Yes
Pale_Height_1251@reddit
100% true.
No point memorising stuff you can look up. It's not a memory game.
Programming is building things, it's not a test on what you can remember.
wiriux@reddit
Correct. Once you know how to use data structures and how to use logic to make something work, then you’re set.
Programming is easy. What’s hard keeping up with new technology and learning the ins and outs of frameworks, tools, etc. The way enterprise code is set up and all of the configs files can get confusing when you work on features. Once you get past that and get familiar with the code base then all is good.
So to sum up: programming is easy. You just need to learn how to use those tools at your disposal to make something work.
roger_ducky@reddit
I disagree. You need to know the major technology types, and be able to understand which kind you’re dealing with. After that, all the apparent changes no longer are.
Programming language types: Procedural programming Object oriented Functional
Database types: “Pile of files” (key value, “document, actual file system, etc) Relational “Graph” (Non-traditional relationships)
Communication types: Synchronous Asynchronous
Common Data structures. Basic Statistics Vector math (linear algebra)
Glum-Echo-4967@reddit
No, you don't strictly need to know vector math or automata theory.
It depends on what you're programming.
3D graphics & machine learning? Sure, learn vector math. (even then, 3D gaming engines probably abstract away a bunch of math anyway).
roger_ducky@reddit
I agree. Automata theory is useful for figuring out state machines or regular expressions. Vector math for 3D simulation, machine learning/NLP, or, actually, doing “data science” stuff quicker. (For some reason I see people using DataFrames as vectors a lot)
wiriux@reddit
Yes I know :)
My point was that once you are comfortable with the basics of programming and can make beginner to upper beginner projects, then everything else can be done by just reading docs, tutorials etc and knowing how to implement them. That’s all.
mc_vee0818@reddit
Yes. This is the case.
jalabi99@reddit
Assuming that your native/first language is English: do you know every single word in the English language? No.
But do you know how to make grammatically- and syntactically-correctly sentences in English, using those words in the language that you DO know? Yes.
And do you sometimes forget how to spell a word, what its meaning is, or how to pronounce it correctly, so you look it up in a glossary or in a dictionary? Yes.
Same with programming languages.
sproengineer@reddit
A good engineer knows fundamental algorithms and data structures (by name, association, and a high level approach of how to implement), a solid understanding of proven design patterns and architectures, a comprehensive knowledge of a suite of tools that get the job done, the ability to learn quickly by teaching themselves or others, and a very good ability to look things up if they don't know.
Knowing everything is out of the question. Knowing some things that allow you to actually build something: thats everything.
Yamoyek@reddit
Yeah, that’s pretty accurate. Sort of like how a professional chef doesn’t know how to cook every single recipe in the world, but they sure do know how to follow the steps, and they could probably reverse-engineer something if they need to.
EfficientRegular7986@reddit
Writing the code is the easy bit. You have to have that moment where it all 'clicks' at the start, then the ball's rolling. You soon work out how to learn, and things snowball from there.
Some_Designer6145@reddit
That is basically what programming is, yes. No one knows everything. It's simply impossible to hold all that information in the brain.
aqua_regis@reddit
Absolutely true.
Programming is not about throwing out code; it is about solving problems in an algorithmic step-by-step way that then can be implemented in a programming language.
Code, the implementation in a programming language, is only the final product, a necessary evil.
Understanding a problem, breaking it down into smaller sub problems, solving each sub problem individually, and then joining the solutions together is far more important.
yaedea@reddit
That is exactly the merge sort algorithm
aqua_regis@reddit
Or, predating computers by centuries: divide and conquer
Classic-Try2484@reddit
Knowing all is not possible so it must be or no one could do it.
bravopapa99@reddit
The implementation language and framework is but a mere technical detail.
Understanding the "why", the systems architecture, is far more important, as is the ability to understand problem decomposition.
Search engines can help with implementation details at any time.
h00manist@reddit
You'll be working in a place where many people are contributing to the code, complain of some code you consider terrible, then soon realize, oh, I did this myself a few years back.
nderflow@reddit
Yes.
pythosynthesis@reddit
Absolutely correct.
Zesher_@reddit
Yes, looking up syntax is quick and easy if you know what and (roughly) how you want to do something. Plus new libraries and frameworks come out all the time, so you'll constantly have to look up new things.
smartello@reddit
This is absolutely true outside of few very narrow scenarios.
Take a look at what is going on in frontend world to get an idea. By the time you learn something, there’s three better alternatives. Yes, I exaggerate and frontend is a wild west but let’s say you’re a Java expert, with every new JDK version your knowledge may become obsolete or even incorrect.
HobblingCobbler@reddit
Think about it.. how would you even know every little detail about a language? Depending on the language that's pretty ridiculous.
phpMartian@reddit
It’s impossible to know everything. 50% of what I do is research and think about how to apply that to the problem at hand.
ky1323@reddit
That's legit. It's more important to understand code architecture, because the reality is that you will eventually be coding in multiple languages and there is MORE than anyone can memorize, as well as multiple ways to achieve the same goal.
AppleWithGravy@reddit
Yes, looking up things is much more important than memorizing everything
iOSCaleb@reddit
It's important to understand "every scrap of code" in this context. Think about reading a novel: is it essential that you know every single word in the book? No, of course not, most readers will come across a few words that they're not familiar with in a novel, or perhaps some words that they know but which are used in an unfamiliar way. That's fine; you can often get the meaning from context, and you can look it up if you need to. But degree is important: if there are too many words that you don't know, it can be difficult to follow the narrative and looking up definitions too often gets in the way.
It's much the same with programming. You need to understand enough of the language that you can follow the code without too much trouble. Programming is all about defining new things: functions, classes, methods, constants, variables, etc., so a lot of understanding comes from digging into code and documentation, sometimes several layers deep, to figure out how things work. Every language has features that aren't used often, and if you're not familiar with all of them when you start you just look them up as you encounter them. But if you're not well versed in the main features of the language, the parts that are used frequently, it's going to be difficult to understand the code and even more difficult to write new code.
HashDefTrueFalse@reddit
This is a junk sentence, but yes, the basic suggestion that you don't need to memorise everything is true. You do still need to be decently familiar with the standard library/modules that a language provides to you for doing common things. It's hard to know how to solve a problem without knowing what tools you have available to you. Indeed, available tools often inform the solution process. But there is lots of knowledge transfer between languages, frameworks, and tools whose broad uses align.
mxldevs@reddit
You only need to know what is needed to solve the problem.
However, you can't come up with solutions using knowledge you don't possess.
Maybe there some obscure module or algorithm that would make a certain problem trivial, but because you don't know about it, you might never come up with that solution.
Knowing more will only allow you to come up with a broader range of solutions.
Optimal_Archer4058@reddit
If you aren’t thoroughly proficient in the language you are using you will spend more time fighting your tools than solving the problem.
Designer_Currency455@reddit
Yeah lol im not sure it's possible to learn everything and all libraries available to a language so why waste the time over it
Any_Sense_2263@reddit
in general, you have to understand what the code does, but if you are debugging then understanding every line helps greatly 😀
bestjakeisbest@reddit
Its the difference between knowing how to use a programming language, and how to program. These are separate skills but many people just starting out think knowing a language means they know how to program, when in reality if you know how to program the language is not important.
Zestyclose_Finish_59@reddit
True. I think this also true in learning human language. We learn through the practical use of it without knowing it's actual meaning or etymology unless when it is truly necessary or do you want to deep dive into it. Knowledge is a reward for those who is curious.
roger_ducky@reddit
You need the ability to break a bigger problem down to a smaller problem until all the things you need the program to do can use what the programming language provided you.
That and understanding code other people wrote.
Those are the two key skills.
CodeTinkerer@reddit
It's partly true. There are too many libraries and unusual language features that most programmer can't know everything. You want to know the core language plus some useful libraries. Everything else you can look up.
Some things are kind of hard to learn (people who want to do machine learning or work on some complex library, say, that does numerical analysis). And you still have to put programs together which is not easy either.
Syntax is like knowing grammar in a language. It doesn't help you write a novel. Writing a novel is like writing a program. Many beginners struggle with having a mental idea of what to do and end up using Chat GPT because they can't make their brains think the answer which is what is needed if you want to know programming.
And programming exists at many levels, from beginner to someone who is job ready. That gap can be fairly large.
forcesensitivevulcan@reddit
Yes.
Knowing stuff never hurts of course, but there's just too much information to know "every scrap". Plus one inevitably forgets.
Mortomes@reddit
You will learn so many different libraries and frameworks over the years, there simply is no way you can keep it all in your head. What's more important is to understand the basic structure of a framework. What are the common components, how do they interact with each other, what is the idomatic code style for using it.