TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The 2 Biggest Mistakes I Made When Learning to Code

147 pointsby suneel0101over 12 years ago

27 comments

KirinDaveover 12 years ago
If you have been starting to write code and study code for a year, you are still learning to code. You have not learned to code, you are not even a journeyman yet.<p>I've been in the industry about 9 years, and coding since I was a child. My parents caught me staying up late with a flashlight under the covers as a teenager reading books on C instead of nudie mags. My first program with an event-driven UI ran on a NeXT Color Station. This is not to brag, it's to say I've been doing this basically since I could decide what to do, and I still have a lot to learn about coding, computer science and software engineering.<p>So you've made your third biggest mistake; you've vastly underestimated what you are in for. You have never "learned" to program, you are "learning." Every year will ask you to acquire new skills and use new models and learn new domains.
评论 #4492550 未加载
评论 #4491796 未加载
评论 #4491939 未加载
at-fates-handsover 12 years ago
I think the problem is a lot of people jump in, start coding and then never go back and learn about the nuances of a language.<p>Case in point was myself when I was learning Javascript. Sure, I could get the JS to do what I wanted, but it was clunky, used a lot of memory and was slow. Fast forward a few years and I've gone back and read Crockford's books several times, and with more studying, I've gotten much better at writing JS. I now try and make my JS as lean and as fast as possible. It's a totally different approach then when I started.<p>The problem is thinking once you know how to do something, you're done. Like a friend once told me, "You don't learn to be a programmer, you learn to be a student of the language you choose."
评论 #4490310 未加载
评论 #4490321 未加载
评论 #4490740 未加载
评论 #4491292 未加载
sophaclesover 12 years ago
I don't know that #1 was a mistake. When getting into any new field, it is very hard to tell what is important and what isn't, what is a solution to the problem and what isn't. If you are in school, sure they'll guide you, but if you are self-learning, there is no really good filter. So learn about everything. Take a breadth-first approach. Some of the specifics you learn will be wrong, useless, or otherwise inappropriate. However, getting an understanding as to why they aren't relevant is in fact <i>learning the field</i>.<p>The more information about a topic you have in your head, the more likely you are to see the connections between subfields, how various bits are important and unique or just ho-hum standard implementations.<p>I regularly see people in some niche area say "look we have found this amazing new way to handle the data-flood", only to tell them they have reinvented NoSQL or a message queue, or a technique for dealing with matrices that the image processing or simulation folks have been doing for years (and all of them poorly, making recognizable mistakes). A breadth-first overview has much advantage.
评论 #4490835 未加载
bitwizeover 12 years ago
Step 1 in learning to code:<p>10 PRINT "COCKS"<p>20 GOTO 10<p>Step 2 in learning to code:<p>10 INPUT "How many cocks do you want",C<p>20 FOR I = 1 TO C<p>30 PRINT "8===========D"<p>40 NEXT I<p>I'm not recommending that your first steps into programming be in BASIC, or involve cocks. (On both accounts I would recommend the exact inverse.) But this is how a million programmers got started: useless programs that amused us. Never, ever, ever underestimate a useless program, especially for beginners. The author of this article seemed to want to focus on building a prototype for his Web startup. And that's fine, as a long-term goal. But if you're brand new to the world of programming it's probably a good idea to start with the basics, like printing or drawing stuff on the screen, doing some simple (or, later mor complicated) mathematics, or munging or transforming data in interesting ways. This helps keep the budding programmer focused on the patterns and "shape" of their language, which knowledge they can then later direct to a specific purpose like Web or smartphone apps.
评论 #4491603 未加载
评论 #4491619 未加载
albumediaover 12 years ago
Congrats on learning to code but the biggest mistakes new hackers are making is diving right into learning a specific lang.<p>Learning programming fundamentals is a better way to go. That way, you can jump from lang to lang.<p>Starting is hard so congrats again.
评论 #4489659 未加载
评论 #4489687 未加载
评论 #4489733 未加载
评论 #4489588 未加载
评论 #4489968 未加载
评论 #4489660 未加载
评论 #4489912 未加载
评论 #4489766 未加载
评论 #4489691 未加载
评论 #4489568 未加载
crisnobleover 12 years ago
Best quote in the article:<p><pre><code> There are so many benefits to jumping right in. You’ll quickly get over any fear you may have of programming. You’ll start seeing the fruits of your labor right away.</code></pre>
评论 #4489544 未加载
estebankover 12 years ago
I disagree slightly, as I don't think that following that path of reading instead of jumping in is inherently worse.<p>Just jumping into writing code is great for motivational reasons because you'll have something tangible, something to be proud about and to help you get excited and keep learning. But you'll still lack insight in a lot of the surrounding environment, things that any programmer should know.<p>Attempting to do this the other way, reading as much as possible and as in depth as possible, will be good to give you some insight, but you'll have nothing to show for it until you start coding and it'll still take time for you to learn some stuff that can only really be understood with practice.<p>What I'm trying to get at is that it doesn't really matter how you start, as you are going to have to dedicate 10,000 hours to learn, polish and excel at <i>any</i> craft.
elchiefover 12 years ago
Well, you need to know what is out there, and what is possible. So at least skim over some of the technologies. You could waste a lot of time if you didn't know say, Sass, existed.<p>There's also a timing problem. If you invest now, and learn technology T, then when you are in the middle of developing a project, the marginal cost of using T is very low. But if you are up to your neck in a project, and then need to take a week off to learn T, you are not likely to do so.<p>Personally, when re-starting my tech career I wish I had learned Java (or any JVM language) over PHP, PostgreSQL over MySQL, and Dojo over JQuery.
braddddover 12 years ago
Great insight. Every time someone says, "I want to learn to code." They should have a project/task in mind and just go. The stack that Suneel lays out is a good foundation for web dev, but as he admits, he like many others invested more time than was necessary in books/documentation/tutorials.<p>More people need to just jump in. If you get to a point that you want a feature from jQuery, look it up and implement it, but don't feel like you need to wrap your mind around every feature before you can begin. Great work and keep at it.
评论 #4489573 未加载
评论 #4491547 未加载
SatvikBeriover 12 years ago
I've had a completely different experience. The first few times I tried to write code, I learned only what I needed to know for the specific app. I hated it. It seemed like I was just learning a bunch of random syntax and beating them into shape.<p>Later, I actually tried the textbook first approach, and this worked much better for me. By learning the framework and being able to observe the patterns, learning new commands was much easier and I could often guess at exactly what I'd need to do. I also remembered commands for much longer than I did with the first approach.<p>YMMV, but some people have more theory-centric learning styles and some have more application-centric. Test and figure out what works for you.
burntwaterover 12 years ago
I wonder if the advent of web programming makes this process all the more confusing?<p>When I took basic Java and VB programming courses in college 10 years ago, we focused only on Java and VB. There was no HTML, CSS, JS, frameworks, etc. And you could have a complete, functioning program with GUI from the start.<p>Now, to create a web app, you have to learn all those other things <i>in addition</i> to Ruby, or Python, or PHP. As you advance in skills you'll likely move to either front-end or back-end, but when you start out creating everything from scratch, it feels like there's so much more.<p>(This coming from someone who did IT work for the 10 years following college, and is not trying to break into the web developing world).
russellover 12 years ago
Ask a developer who is working in the area that you are interested in to give you some guidance. My girlfriend decided to become a web designer. Do she asked an experienced developer, me. I said HTML, CSS, JavaScript and JQuery. She added Photoshop and some image creation tools. She learned the parts I suggested and decided to go to a community college to get some focus. (Actually, she originally signed up to get the student discounts on the software.) In a few months she will get a job to get some practical experience. Then she will tackle her own projects.
basehover 12 years ago
This pretty much applies for any endeavor ; not just learning to code. Thanks for the post.<p>2 Biggest mistakes when learning to [TASK X]<p>Mistake #1: I spent too much time learning things that I didn’t actually need.<p>Mistake #2: I didn’t start [TASK X] right away.
njharmanover 12 years ago
YMMV But I typically do #1 when learning / starting anything I don't know about. That is I some proportional amount of time googling/wiki reading/pinging friends for all the info/standards/tools/libs around subject. Review* them for worth, spend more time with ones that pass.<p>It is very helpful to have a idea of the breadth of and resource for a subject.<p>Review typically means "experimental coding". The 2nd point "start coding now" is a Truism. Just don't start coding "production". Learn some, think, first.
sunraaover 12 years ago
As much it pains me to admit it, Nikes' "Just Do It" applies here (and in life) as the author has learned. The procrastination and anxiety that comes with tackling something new can be overwhelming. The task oriented approach narrows focus and makes you think about what you need to learn. Fear is also a great motivator especially when your lead is breathing down your neck with a 'JGID - just get it done' attitude. :)
dwootover 12 years ago
suneel, many people make this mistake. I went almost EXACTLY the same route you did. Although, I had already known HTML, CSS, and some Javascript, I was wildly unprepared for what I would encounter next just to learn how to get a working prototype. It basically took me 8 months before I got something running on Heroku. I went through four different Django books with some success here and there, including the Django Project's simple Poll tutorial three times without grasping it. Little to my understanding, all of it made sense once I used the book written by one of the creators of Django himself. I also used a lot of StackOverflow and the guys hanging out in #Python and #Django Freenode IRC channels were awesome!!!<p>The trial and error got me to learn a lot of things. In addition to the six things that you've listed, I forced myself to learn VIM as well. You probably use VirtualEnv, which you've forgotten to list.<p>Anyway, it's always good to see others going down the same road and sharing their experiences. Do you have some links to some of your early projects?
henryxieover 12 years ago
Totally agree. Prototyping is all you need to test out a startup idea. And if you learn by doing, everything you learn is useful!
tedmistonover 12 years ago
It's easy to worry about every details and learn every piece of tech yourself all at once, but it's a recipe for unstable foundations and disasters of distraction.<p>Creating small achievements by prototyping simple ideas in unfamiliar technologies gives me small, concrete rewards to celebrate the journey.
GrueFiendover 12 years ago
Knuth hath said: "A person who is more than casually interested in computers should be well schooled in machine language, since it is a fundamental part of a computer."<p>I agree with that sentiment. The whole "focus on what works" is not the same thing as "understanding what the hell you're doing."
lognover 12 years ago
I think you can reduce the list a lot more--and should. I'd choose a single language and learn it well and go from there. And I'd only work the command line features. So Ruby on the command line or JS or Java would be my choices (but only one).
mikeryanover 12 years ago
This is actually just 1 mistake.<p>Start writing code, make it do what you need it to do today. This will focus your efforts to what you need to do at the present moment and you won't end up trying to figure out how to deploy an app you haven't built yet.
MojoJoloover 12 years ago
They say you learn best through experience.<p>I learned CakePHP by coding my thesis with it. Now, I wanted to learn python + postgres by planning to port my thesis to it.
评论 #4490911 未加载
mikecaneover 12 years ago
Everyone out there who wants to learn to code, stop reading these comments and use the time to just go learn!
webjunkieover 12 years ago
Yeah, away with all that crap, just use Django already! Good decision.
评论 #4489849 未加载
waynengai8over 12 years ago
keep blogging suneel....maybe this will finally get me to start learning!
lhnnover 12 years ago
To Generalize (for web):<p>HTML/CSS/JS (View)<p>jQuery (View Framework, couldhave been YUI, for example)<p>Programming language<p>Framework in said language<p>I still think actual SQL / DB knowledge is requisite to do all but the most minor of apps, but he is specifically trying to get people from being overwhelmed.<p>I'm struggling with Play!, because I need to know HTML/CSS/Java/Scala subset (templates)/EBean ORM/the massive library that is Play.<p>Just a simple app touches on so many libraries and helper functions, it's hard to get a grasp of what's going on. I don't even build a form anymore, I build a form-ish object that I pass to the controller that fills in data to the ORM that inserts stuff into the database. o_O
goggles99over 12 years ago
You put the cart before the horse (which was actually your first mistake). When you get out of college - get a job, work a while - then start a side business. Your startup success odds will more than quadruple following this advice.