5 ms·
I think I can empathize with the author to an extent — I switched into computer science after freshman year, and encountered many students that had been program
by austinl 12y ago
I think I can empathize with the author to an extent — I switched into computer science after freshman year, and encountered many students that had been programming since a young age, or at least since high school.
I think the most important thing for me was finding a mentor. I was fortunate enough to get an internship at a startup with little programming experience (possibly out of a sheer determination to learn).
The engineer I paired with was able to answer all of those early "roadblock" questions — the ones that you can't really Google since they seem so obvious to someone with experience that no one writes about them (this was before Codeacademy, etc.).
Anyway, finding a mentor can be tough, but I've generally found that friends who program are pretty eager to talk about it or willing to help out. I've been programming for a while and I'm still learning stuff all the time.
- shostack 12y agoCan you share what some of those "roadblock questions" for you were?
- FigBug 12y agoI remember when I was learning to program in C I once put a semi-colon on the end of a #define. Statements end in semi-colons, seemed like a fine thing to do and didn't stand out when I was looking for the error. The compiler errors were of no help. It took days to find. It took a long time to learn to read errors messages and interpret them for what the actual problem is. Forgetting the semi colon on the end of a class in C++ is another one that will making baffling errors, though I think most modern compilers now say "did you forget a semi colon?" It takes time to learn all these common simple errors that are impossible to look up in a reference book. (Though now you can usually google them) I remember getting so frustrated that I couldn't figure out how to cast a function pointer to a C API correctly in C++ correctly that I gave up and switched the entire project to C. These are the only onse that really stick out in my mind, but there were many more.
- austinl 12y agoFor me, the language wasn't the difficult part (like how the author mentions semicolons, etc.) I was able to pick that up from reading books. I remember having a Python book that walked through some simple programs which I ran on my computer. After, I was able to write loops and do math with scripts, but I had no idea how that translated into actual software used by companies. That's where the mentorship helped. Before, I only had a vague idea of how a non-static website worked. After, I had an okay understanding of the entire system, from the databases to the front-end, and how it was built. I learned about stuff like MVC, and got to the point where I could build a website on my own. Possibly the most helpful thing was looking at segments of code, trying to work out what they were for, and then having people to talk to if I didn't understand.
- ashark 12y agoFor me OO was a roadblock for years thanks to really bad early chapters in introductory Java and C++ books that made it sound magical and used awful "sally tells tommy that she wants to buy some flowers"-type examples. From those I figured it was something really complicated (nope) and advanced (unh-uh) so I didn't seek help when I needed it (if I can't learn it from the intro book I must not be able to, right? Hahaha). It probably didn't help that Perl was my first language. With a solid grounding in C I might have made the "this is just a struct with functions and some sugar on top? Why the hell didn't they say so!?" leap much sooner—as it is, I eventually made that leap from associative arrays instead of the closer analog of structs—again, I learned on Perl. Someone to say, "look, you pretty much already know this, it's..." would have saved me tons of time and accelerated my learning substantially. I hope for the sake of people learning now that all these online tutorials and interactive exercises have made that sort of thing largely a thing of the past. [EDIT] grammar