Live data from Hacker News

Ask HN: I feel like an 'expert beginner' and I don't know how to get better

news.ycombinator.com

21–30 of 57 posts

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#21
post #12

The most important advice that comes to mind is a bit proverbial, and from a board game so appropriately titled; "Go." Lose your first 50 games of Go as FAST as possible! Don't worry about winning or losing or finding the "right" move, just put some stones down, get used to looking at the shapes that come up, and get a good feeling for how the rules work. Of course, a consequence of that attitude is that you will los…

Any idea where that advice comes from, I've given similar advice in the realms of learning to throw pots (on the potters wheel); would be nice to ground that advice in a source as ancient wisdom if it is indeed that.

Off-topic but I tried ceramics and found it to be the hardest thing I ever had to learn. Ceramics seems to be unique in that your creations literally get destroyed right in front of you with no way to go back. (I'm told ceramics people dream of VCS' in their sleep :)

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#22
Seems like you fell into the typical CS trap. The problem is that Computer Science is not software engineering, and the dev skills you need aren't going to magically fall out from between the pages of CS books. What you need is more dev oriented knowledge and experience/practice.

A couple books that are worthwhile: "Refactoring" and "Rapid Development". That will teach you a lot of basic skills in terms of development process and how to improve the design of real systems (warts and all). Also, take a look at the Architecture of Open Source Systems, it'll acquaint you with how applications fit together.

Also, take on some projects. Pick something interesting and work on it. Pick some small stuff then move up from there. I'd suggest in your case eventually building a compiler. If you're interested in AI, build some simple games and work on building AI for them. There is nothing more important than actually writing code.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#23
I've learnt so much over the years and barely remember any of it. I wonder whats the point of studying all this if I am going to forget 90% of it in couple of months. How do people deal with this? Should I convert everything I learn into some sort of cliff notes for rapid reacquisition of the knowledge at a later time?

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#24
When looking to improve your programming ability, it's important to ask for what end you are improving your skills. If your goal is to become a professional computer scientist, then you'll need to choose an area of focus. The field of computing simply has too many facets for anyone to master them all. If your goal is to learn, simply for its own sake, then all that matters is that you are enjoying the learning. It won't matter what technologies you use, or if what you're making actually works, so long as you enjoy it. In either case, you should choose something to learn that interests you. There are many highly sought after computer scientists, who specialize in computer vision algorithms, for example, who get recruited by companies all the time, despite knowing little to no software engineering and data structures. TL;DR: Learn anything, it will get you places.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#25

To become a better programmer and not a better computer scientist: Do your own thing. Build something you want to see built and you will learn oh so much. Programming isn't about how you implement something so much as it is for what reason. Think of something you want to see built and figure it out from there. For example, I learned Python by trying to write an app that would take my Shazam tags and convert them to a…

This, a thousand times this.

Don't go straight for an open source project unless you're really into it. Honestly - debugging other people's code is hell, I hate doing it (but frequently have to). By all means dig through other people's code to work out how something is achieved, but for people starting out, bug-fixing is a bore.

Make your own damn open source project! Pick something you love that has a problem and have a bash at fixing it. An here's the best bit: you'll still get to solve bugs, lots and lots and lots of them. Some of them will be easy to solve, some will take you a week before you realise you missed out a bracket.

You have to enjoy what you do or it won't stick. And don't be fooled into thinking you like something until you actually try to build something with it.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#26
I think some of it might just be that CS theory sounds intimidating. But if you paid attention in college (which it sounds like you did), you might find that papers really aren't that hard to read. The hairy bit comes up when you don't know enough math, but this is typically more a problem if you're trying to learn something specialized (e.g cryptography).

Also, there's a disconnect between academia and the workforce. You might invent a fancy new data structure that blows up in real use because it ignores caches. Or you might invent something that's cache-aware, but everybody's using scripting languages or the JVM and doesn't have that level of access to the hardware. And so on. If you're strictly speaking about becoming better at the work of programming (rather than CS), that stuff isn't that important. You will spend way more time, especially as you move up in seniority, interacting with people - whether it's designing your system to be understandable by humans, persuading others of your ideas, getting funding, etc.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#27
post #9

Simply put you have to start practicing. Try to solve problems with the techniques you've learned, and you will get a better understanding of their strengths and their weaknesses. That will help you internalize the theory you have absorbed. It does take time (this annoys most people) but it serves the exact same purpose as homework does in school, moves the understanding from the hippocampus out through the rest of y…

I agree with this, however I'd like to add to it.

When you build stuff for the purpose of practice also make sure you build it incrementally. For example, design a file format, build a parser/generator for it. After that, add networking, so two apps can communicate the contents of the file. After that add encryption (nothing fancy, just use a library), then add some TLS, and then, and then, and then.

I found this approach best because:

1) You learn new things (because you research best way to do stuff, experiment with code, etc), and 2) you learn from your mistakes, because as you add you might notice that certain things don't play with your new features, and you will be forced to improve them.

P.S: I know my example might seem a bit lame, but I couldn't think of anything else at the moment.

Re: Ask HN: I feel like an 'expert beginner' and I don't know how to get better

#29
post #12

The most important advice that comes to mind is a bit proverbial, and from a board game so appropriately titled; "Go." Lose your first 50 games of Go as FAST as possible! Don't worry about winning or losing or finding the "right" move, just put some stones down, get used to looking at the shapes that come up, and get a good feeling for how the rules work. Of course, a consequence of that attitude is that you will los…

Any idea where that advice comes from, I've given similar advice in the realms of learning to throw pots (on the potters wheel); would be nice to ground that advice in a source as ancient wisdom if it is indeed that.

I am sure there are many alternatives to the many proverbs of Go. Kensaku Segoe might be the source of many of them according to the wiki page for Go_Proverbs. Aside from that, I really like Thomas Edisons' quote on failure;

“I have not failed. I’ve just found 10,000 ways that won’t work.” - Thomas A. Edison

Post reply on HN