Hacker News new | ask | show | jobs
by jrookie 5591 days ago
Thanks for you answer, you tackle some of the other things I've been struggling with for the last few years.

1. I work with other experience programmers but they are not really into "mentoring", I have been looking for someone online who can lead me on the path of the hacker.

2.Good point, sometimes I do feel like I don't know how to learn. Thanks for the link I will check it out.

3.This is one of my flaws...I'm not very confident in my abilities, and frankly I never feel like I have something good enough to contribute, this is also why I've never felt comfortable starting a blog or participating in open source projects.

2 comments

>This is one of my flaws...I'm not very confident in my abilities

Realise that lack of confidence is just another way of saying "knows his limitations." This is an asset that most people at your level don't have.

If you want to learn some CS, here's a concept for you: Fail Fast

https://secure.wikimedia.org/wikipedia/en/wiki/Fail_Fast

This concept, like many CS concepts is often generalised by hackers to life in general. Practice makes perfect. What does practice mean? Doing things badly over and over again until you get better. Viewed in this light, failure is an asset. As long as you learn from it, you can see each failure as another step on the road to success.

As I say, hackers generally take this attitude that failure is good. Strolling into an IRC channel or message board for a particular technology and professing your utter ignorance and incompetence concerning the matter will likely not be met with the derision you might fear. Most people are more eager to help the humble than the bullish.

EDIT: Also read this book before you read any actual programming books. Don't worry when you don't understand parts of it.

http://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach

Thanks,

I tried reading that Godel book and I couldn't wrap my head around it, I will give it a second shot though.

I think the best thing to do when you get to the really dense sections is just to plough through. It reaches a critical mass of crazy notation and mindbending logic in the middle, but once you get past that it drops back to being relatively graspable again as he addresses different areas. At least for a while :)

As I said, don't expect yourself to really understand all of it the first time you read it. Read it for the bits you do understand, not the bits you don't. Even if that turns out to only include the Carrol-esque dialogue, it's worth it.

#2 is your key problem. You do not know how to learn.

As a developer, "I am but an egg". Much of the advice offered seems good, but I fear it may reinforce a key problem. It seems to me that you are trying to model the external attributes of great programmers. For example, you judge yourself based on your inability to remember command line commands. But while remembering this stuff is surely a trait of many great programmers, it is by no means essential. And those that have it, got it by accident, through their hours at the command line, not by trying to memorize all the commands.

Dude, you could learn C or Python or assembler or whatever, and I'm sure it will help, but it won't get at the core problem. The key internal attribute of a great programmer is the ability to think, and to learn. These are what you must seek. Learn algorithms or data structures or whatever, but always be learning how to learn and think.

You have had a lousy education and probably never had great teachers. This is not necessarily your fault. You must learn how to think. And this is a very hard thing, many people never do. I'm not sure of the best way to go about it.

One important thing is to trust yourself, even knowing that in your limitations, you will screw up. This is okay, if your choices are based on some clear thinking, and you can later assess that thinking for its mistakes. Because that is how you will learn.

Another is that you can learn to learn in all sorts of places. You needn't do it only at programming. Do you have hobbies doing things that come more naturally to you, or that seem simpler? Spend some time working to become great at those. You will learn problem-solving and gain confidence, and relief from the stress and exhaustion of work. Be curious about everything.

Another is to focus on principles. I suspect that Java and Windows aren't so good for this, but as an egg, I can't say for sure. I suspect open source tools are better places to learn principles. But don't try to sound like a great programmer, learn to think clearly and elegantly about programming.

Another is to start simply. Don't try to be a great programmer, don't try to do things beyond b/c that's what the great programmers do. Become able to do simple things, elegantly and properly, and then become able to do more things.

Be willing to take a step back. Maybe these Java jobs pay more? But if you aren't learning, they aren't paying anything near enough. Find a job where you can grow, and never mind the wage, that will come in time.

Understand that confusion and frustration are natural and necessary to learning. Learn to distinguish good confusion, which can lead to progress, from bad confusion, which leads nowhere. But confusion does not mean that you are stupid. If you'd had a proper education, you would understand that smart people are confused all the time. They just aren't panicked by it, because they know it signifies little about themselves, and that they will, in time, pass through it.

Take heart. Humility is a door to learning; despair is a door to nowhere. You can get there. We are all learning, many of us are still trying to recover the time we lost to mistakes and accidents. My God, if you knew what I'd give to get back the time I have wasted . . . . Find ways to enjoy today, even as you aspire to be more tomorrow. Put little bits of beauty and color in your life, always find ways and times to laugh, eat well occasionally, watch some good movies, read some good books. Frodo saw the flowers growing in the vandalized statue, Sam saw the stars above the murk of Mordor, and they knew that there was some lovely and grand above their misery, against which the misery could not forever prevail. Now maybe that's a little melodramatic, but you have to see the glimmers of hope, and know that you're hoping for something so much better that it must be possible.

This is crucial. Even if you start to learn, you are going to be in confusion and frustration for a long time. If you don't find a way to find joy in your days, it will be a long, hard slog, and you risking exhausting your spirit before you get there. "As they go through the bitter valley, they make it a place of springs". You have the courage to admit your shortcomings and the initiative to address them, this is more than a great many people. If you keep at it long enough, you will become something really special. But it's going to be a lot of work. Find moments to refresh yourself, and never, never, never give up.

Godspeed.