Hey so I am just getting into programming and I just want to ask a question for you programmers out there.
Do you actually know in your memory what most of your coding you are doing is? Whether it be a big project or anything do you ever have to use a book/google to figure out how to do something?
I am more curious because I have the mindset that I should be able to do everything without ever having to look something up and this is more for me to know if I am just setting my need to know way to high or whatever. Thanks in advance to anyone who responds!
Question for programmers
Do you actually know in your memory what most of your coding you are doing is?
These days I remember the major modules of the code I'm working on and their interactions, but little of the details. Details can be pretty easily extrapolated out from how I would've approached a problem.
Whether it be a big project or anything do you ever have to use a book/google to figure out how to do something?
[/quote]
Sure. I often forget the incantations to format strings beyond simple placement. For languages I'm rusty with, I often will have to refresh a few syntax things and a bit of standard library calls. I'll often have API references open on the second monitor.
I am more curious because I have the mindset that I should be able to do everything without ever having to look something up
'Everything' is an awful lot. It's a matter of efficiency. Nobody is going to know, and/or remember everything involved in a large app. You should remember the stuff you need all the time, and know where to find the things you need to look up occasionally. As we move from project to project, stuff that used to be vital gets rusty in favor of things you need now. And as you age, your memory will get a bunch worse; best to accomodate that workflow now.
You should know how to do basic language stuff such as writing classes, functions and control structures.
But when it gets to using APIs, you should look at documentation for reference.
But when it gets to using APIs, you should look at documentation for reference.
Hey so I am just getting into programming and I just want to ask a question for you programmers out there.
Do you actually know in your memory what most of your coding you are doing is? Whether it be a big project or anything do you ever have to use a book/google to figure out how to do something?
Well, it's a fact of life that you can only hold so much state regarding code in your head at once. However, for a smallish project that you are writing yourself usually you can hold the whole thing in your head while you develop it unless you step away from it for several months or something. For large projects in which you are not the only programmer involved it's impossible for one person to know the details of the whole thing and you might only have instaneous access in your mind to the details of the module you are working on.
This is the whole point of all the good programming practices that everyone talks about regarding the design and architecture of software. This is the reason why modular design, encapsulation, separation of concerns, et. al. are a good idea. Because if you follow these sorts of design principles it makes it easier to pick up and use someone else's code or code that you wrote two years ago.
As far as looking up stuff in books or online, as you program more you will find yourself needing to look up less stuff regarding the syntax and semantics of your primary programming language, but needing to look up stuff in reference materials about APIs and libraries is pretty much something you will always have to do to some degree.
Thanks for the respones guys! I have another question.
Since beginning how much should I try to do a day in terms of learning. I don't want to over do it and confuse myself, but I also want to do the most I can in terms of learning the language most effeciently. Any advice on how I should go about learning in terms when doing books and tutorials (I already have both).
Since beginning how much should I try to do a day in terms of learning. I don't want to over do it and confuse myself, but I also want to do the most I can in terms of learning the language most effeciently. Any advice on how I should go about learning in terms when doing books and tutorials (I already have both).
it's impossible to answer.. we're all different.
One thing for sure I feel I can recommend to you: don't study too much. Programming is a practical activity, nothing good comes for studying alone. It's like trying to learn to play tennis reading a book or watching youtube. You can sure learn something, but if you don't play, that something gets lost.
I'd try to do "stints".. code for 2 hours, study for 30 mins. Of course, when you code at the beginning you will constantly stop because you need to look up stuff... it is perfectly normal and actually it's a required skill to learn... interesting programming comes from coding things that you don't know yet, the ability to locate the information needed to solve a particular problem is one of the most important programming skills I can think about.
So code and problems first.. theory later. Learn to solve the problem with whatever knowledge you have available, study will gradually teach you how to solve problems in a more elegant way.
One thing for sure I feel I can recommend to you: don't study too much. Programming is a practical activity, nothing good comes for studying alone. It's like trying to learn to play tennis reading a book or watching youtube. You can sure learn something, but if you don't play, that something gets lost.
I'd try to do "stints".. code for 2 hours, study for 30 mins. Of course, when you code at the beginning you will constantly stop because you need to look up stuff... it is perfectly normal and actually it's a required skill to learn... interesting programming comes from coding things that you don't know yet, the ability to locate the information needed to solve a particular problem is one of the most important programming skills I can think about.
So code and problems first.. theory later. Learn to solve the problem with whatever knowledge you have available, study will gradually teach you how to solve problems in a more elegant way.
Ok thank you. I always feel like I am cheating when I need to look something up for some reason after I read it a few times to try and memorize it. Thanks!
Having every little fact about every little API you use in your head is a waste of brain capacity
Also remembering every little fact about your own code, thats where things like good coding guidelines and writing readable and documented code comes in.
Its not just for showing the code to other people, its equally, if not more, about remembering yourself what your code does the next time you visit it.
Even every little fact about the computer science you have learned... impossible to remember it all in your head. But the next time you look it up, you might just need a few hints, and it will all come back to you.
You kind of keep a cache of what is useful to you right now in your head, and look things up when needed.
That feeling of "cheating" is probably just an artefact from going to school, in real life, there is no such thing as "cheating", just "solving the problem". (unless you start breaking laws or something)
Also remembering every little fact about your own code, thats where things like good coding guidelines and writing readable and documented code comes in.
Its not just for showing the code to other people, its equally, if not more, about remembering yourself what your code does the next time you visit it.
Even every little fact about the computer science you have learned... impossible to remember it all in your head. But the next time you look it up, you might just need a few hints, and it will all come back to you.
You kind of keep a cache of what is useful to you right now in your head, and look things up when needed.
That feeling of "cheating" is probably just an artefact from going to school, in real life, there is no such thing as "cheating", just "solving the problem". (unless you start breaking laws or something)
Just as calculators can offload calculations, the Web can offload memorization. Are calculators considered cheating?
EDIT: ...outside of school, of course
EDIT: ...outside of school, of course
What you'll find as you learn more is that the important thing is that you understand powerful concepts and philosophies that are language agnostic, and mostly specific to computer science as a whole. That's the knowledge that you really need to always keep in mind, because it's not so easy to just go look up, and it's something that takes practice to wrap your head around. But more important than that: You need to understand yourself. You need to understand how you learn things fastest and most effectively, and basically hack yourself so that when you do need to go back to some language/API you haven't used in a while, or start using a new one, you can pick it up in a non-trivial amount of time and start building applications like someone who's been using the technology for a while. But that's not particularly a programming thing; it's more of a life thing haha.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement