Live data from Hacker News

Ask HN: Confused semi-newbie programmer needs some advice.

news.ycombinator.com

51–57 of 57 posts

Re: Ask HN: Confused semi-newbie programmer needs some advice.

#51
post #40
post #27

Learn Unix on a real OS; like BSD or Slackware. High level programming languages are froth; once you understand the basic concepts, it's best to work with C and system calls til you're absolutely sure what you are doing. Learn how to use a debugger, disassembler, packet sniffer and every utility you can find for creating mischief. A few books on actual hacking, you know, the "blackhat" kind, might come handy. Hacking…

I have to disagree. Sure, if you go through that chore, you'll probably end up being a cool hacker. However, systems programming might not be what you really want to do (maybe you want to be a cool Hacker of JavaScript frameworks or whatever). I think it is better to work on stuff you really want to do. Maybe you want to create games - if at some point you realize your game's performance sucks, you can still dive dow…

I totally agree. You can do really awesome stuff with high level languages too. JQuery has had a huge impact, for example.

The parent post nails it: Find something you want to build and then build it.

I'd add that once you build it you'll probably learn enough to want to rebuild it without all the mistakes... and once you do you'll probably want to rebuild it a third time.

It's supposed to be fun. Work on something you love so much that you work on it until your hands need a break from the keyboard.

Re: Ask HN: Confused semi-newbie programmer needs some advice.

#52
post #3

You're sort of finding the pleasure and pain of a CS degree: Data Structures doesn't teach you how to program, except in a superficial way in a single language. It teaches you how to manipulate certain building blocks of our field. You'll be thinking in terms of lists, sets, and hashmaps until the day you die, no matter what programming language you eventually end up using. Now, in C, working with lists requires know…

Thanks for the advice. I do know HTML. Simple webpages made great income for a highschool student. Should I go with simple Javascript, or something more? I only did HTML/CSS, nothing at all with dynamic webpages.

JavaScript and Ruby|Scala|Python, if you want to go the website route. (I'm a fan of Scala, personally)

Re: Ask HN: Confused semi-newbie programmer needs some advice.

#53

Earlier quoted context omitted.

That sounds fascinating. I'll dig through the course catalog and see of there's anything comparable.

If there is, by all means take it. In case there isn't, though, here are some books I've found particularly helpful teaching myself the same material. (This is a lot of reading, and they'll take time to work through. Alternating between studying theoretical stuff and working on real projects will help keep you grounded.) First off, absolutely get a copy of _Structure and Interpretation of Computer Programs_ (SICP: ht…

The Art of Prolog is a beautiful book. I keep it on my coffee table, and non-programmers are always curious about it because of its cover. They sort of blanch when they open it, though...

Re: Ask HN: Confused semi-newbie programmer needs some advice.

#54

I'm a fellow CS student, but I'm a bit deeper into the curriculum. As a Junior, I'm just now learning other languages in class. I see those first two years as something necessary. It's fairly trivial for me to sit down and read most OO languages now that I've been taught Java for two years in college (plus one year in high school). After learning the syntax, it's far easier to take apart those concepts that they're t…

I'd forgotten Django. That sounds interesting. I did enjoy Python when I used in in Highschool, and I wouldn't mind learning more. About your other point, with sticking to C/C++ until the language disappears, I think I'm just afraid I'll get stuck in that paradigm, and if I don't broaden my horizons now, I'll have a hard time later on. You may have a point though. I'll think about it. Thanks for the advice.

I think it depends on your 'project' as one person said. if you want to write systems software, or desktop apps C/C++ is a good route, however if you want to write Web Applications it's not, you should pick a scripting language. Pick the language for the task first then on preference. so like one person said python, php, perl, ruby, coldfusion are all good choices for web development... you just pick one of those if that's what you want to do. C/C++/Java(C# Windows) are all good for application developement. C is good for Systems development. Perl/Shell is good for scripting.

Re: Ask HN: Confused semi-newbie programmer needs some advice.

#55
I've been fascinated with scala (http://www.victusspiritus.com/2009/10/31/im-having-way-too-m...) recently.

The perks: functional and object oriented compact syntax lift is an excellent web framework appears to guide design towards application or library perspectives Dave Pollack feels that his perception of programs and functions has changed to state modifications and data transformations. I don't quite see it but I'm a noob.

Re: Ask HN: Confused semi-newbie programmer needs some advice.

#56
Do not worry about your education getting wasted. C/C++ are probably the most useful languages you can learn. This is the case because (a) most existing code is written in C/C++ and (b) C/C++ are probably as low level as one can get while being hardware agnostic, which means programming C/C++ will teach you the nuts and bolts about computers. Also, if you actually manage to learn C and C++ well most other languages will come to you much easier. So you should consider yourself lucky your school is teaching those languages instead of switching to something they think is easier.

But it is still a good idea to learn a new language just to get a new perspective. I would recommend that you learn a highlevel functional programming one, like Lisp, Scheme or Haskel. This will really give you a different perspective from C/C++ and teach you to think about programming in a completely different way.

I strongly recommend you check out this Haskel tutorial (which I found on HN myself):

http://learnyouahaskell.com/

Re: Ask HN: Confused semi-newbie programmer needs some advice.

#57

I'm a fellow CS student, but I'm a bit deeper into the curriculum. As a Junior, I'm just now learning other languages in class. I see those first two years as something necessary. It's fairly trivial for me to sit down and read most OO languages now that I've been taught Java for two years in college (plus one year in high school). After learning the syntax, it's far easier to take apart those concepts that they're t…

I'd forgotten Django. That sounds interesting. I did enjoy Python when I used in in Highschool, and I wouldn't mind learning more. About your other point, with sticking to C/C++ until the language disappears, I think I'm just afraid I'll get stuck in that paradigm, and if I don't broaden my horizons now, I'll have a hard time later on. You may have a point though. I'll think about it. Thanks for the advice.

I don't think you have much to worry about if you pursue C/C++ right now. The paradigms in C++ carry over to Java and other OO languages pretty easily. When I said it's a lot easier to learn the second language after learning your first, I meant it. Once you get one language down (and I mean actually get it down), the concepts pass from one language to another fairly easily. From there, you're just learning syntax and some of the oddities of the language of your choosing. It took me probably two years to really learn Java, but I learned Python in 6 weeks. I was able to sit down and be productive in php after reading about it over a weekend. Ruby (on Rails) took me about a month to learn. COBOL was probably a week. Now I'm learning C and Assembly without really being taught much C and Assembly, just the concepts behind them that differ from what I'm used to. My point is, I stuck with Java for two years until I really got my head around it, then I moved on to other languages with relative ease. I can only imagine that becomes easier with time, not harder.

I definitely think it's a good idea to learn other languages, but what, exactly, is your goal? Are you trying to understand CS concepts better, or are do you just want to learn another language?

Post reply on HN