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

11–20 of 57 posts

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

#11
PS: I guess what I'm looking for is a 'work-out' type procedure. Like practicing to run a marathon, you work out and run a lot (I assume). What should I do in order to 'work-out' my CS skills? Musicians practice, athletes work-out, what do computer scientists do in order to improve problem solving skills and knowledge?

Unlike for athletes or musicians, practice in a knowledge field (like CS), seems a little ill defined..

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

#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 lose most of those games, but it doesn't matter. Once you have a bit of experience under your belt, then you are ready to begin

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

#13

Love what you do and keep doing it, after 25 years I still aknowledge that I am a beginner in some areas and an expert in other. Above all, always have fun!

I came here to say this, also have 25+ years experience. I've noticed that a lot of us with extreme experience feel the same way. In this last year, yet again, I look back at last year's code in horror. Every year it's been the same.. 20 years ago I was producing v. horrible looking code - but it still worked well.. all this zen stuff is fun, my ONLY gift was that I did things as well as I could at the time.

NEXT YEAR!! woohoo, I can't even imagine how good I'll be - this year will seem like crap.

Basically don't fret kid, we're all learning - chill and do your best.

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

#14
I recently got out of college I'm going through almost same situation. What I've learned is you are eventually going to forget many things after some time, and you can't know it all. Secondly, knowing theory is one thing, making use of what you know is another. You can grasp all theory you want, but the main point is how are you gonna put that into use? A good job where you get to solve interesting problems may help. I couldn't do so. What I'm doing right now is, pick up a subject area and build things from scratch. I feel that this is working for me.

Also, I see a pattern that more you are used to studying more quickly you tend to understand something new. I believe its something do with reading habits. So don't leave theory completely, but keep a balance b/w theory and practical.

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

#15
Either build something, or go to the academy. If you build something, you'll do a lazy evaluation of the knowledge tree, learning just what you need to get the job done, which will be a very small subset of all that you described above, depending on the domain of your problem. However if you want knowledge for the sake of knowledge, get a master degree / PhD, it sounds to me it is exactly what you are looking for.

Also you don't sound line an expert beginner, you sound like a beginning expert, I'm programming for 10 years for a living, built a couple of money making startups, and doing my MSc at the moment, I can't say I know half of all that at an expert level ;)

Finally, accept that you don't really have to know everything, and more so, you can't really be an expert in everything, it's really hard but CS is a very wide field. You can't help but being a beginner expert on a wide area of topics, and only a "real" expert in a very narrow subject. Not all CS Phds are expert in everything, actually they are most likely expert in a very narrow set of topics relevant for their research.

Bottom line, either learn for learning and do it in a place that honors it (academy or independent / commercial research) Or build something that makes money, and the subset of human knowledge needed to make it work will be defining itself (you'll have to fight the urge to learn things that "you'll probably need later", and make it more "on demand" learning)

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

#17
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 Google Music playlist so I could more easily remember songs to listen to later.

Notice that I didn't write anything about SQLite or how slow Python's HTTP was when making the queries, because in learning Python, that wasn't important; those things were just implementation details that I only started thinking about after my application was demonstrably "slow." And more than that, I really didn't consider anything about lambda calculus and I don't know a single thing about NFAs or DFAs. I just wrote an app.

And I learned something, enough to get the job done. If you really want to learn about how to apply functional programming, learn Haskell. If you want to learn about compilers, write a compiler. You'll learn enough, because there's no way you can learn "everything" on a topic in Computer Science.

The field is much too broad, and you'll be way better off lazy-evaluating it than calculating it wholesale.

Tl;dr: If you want to be a better programmer (as opposed to being a better computer scientist) build and the knowledge will follow.

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

#18
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.

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

#19
post #4

1. Keep trying. 2. Books and papers are great, but you should also try to find a mentor / guide / teacher / expert to talk about the issues you're facing and what you're thinking about. Schools are organized the way they are for a reason, even if they often fail at their intended purpose.

[deleted]

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

#20
Pick a Free Software project that you use regularly (possibly one without a CLA to begin with if you want to avoid paperwork), preferably one written in a language you already know, find the bug tracker, and find a bug (or wishlist item) that sounds interesting but really trivial. (No, really. The first time you do this will probably be a lot harder than you think it ought to be. If it's not, no problem, pick something less trivial second time around.)

Download the code, figure out how to build/install it, and start to find your way around the codebase to try and figure out which bit of code is at fault/needs extending. When you get stuck, ask on the dev mailing list or IRC or whatever comms channels the core dev(s) have.

A lot of programming is not about designing something elegant and new. It's maintenance work, fixing bugs, extending functionality, adding new features. Sometimes adding exciting new features is a chance to design something elegant and new, but other times it's a bunch of repurposing and refactoring some features that are mostly-there under the hood, but need a couple of tweaks, and a small amount of really new stuff (but in the same idiom as the rest of the system) and exposing in a new way.

You'll really find out how to properly spelunk into a codebase (which is a complementary skill to just reading code), how code is used, and how it solves real-world problems.

If another dev solves the bug before you do, that's not a problem. The real purpose of the exercise was for you to learn, and only perhipherally to help the project. As a bonus, you can see how the other dev solved the problem, and how their solution differs from yours. Did they solve the bug at the "same level" as you? Was their fix a bigger or smaller change than yours?

If you get there first, great! Submit a patch to their mailing list, or a pull request to their git page, or whatever they use. Do not take their criticisms of your work as a personal insult. (If they do insult you personally - which almost certainly won't happen, but very occasionally does - that's another matter. Drop it and find another project. Life's too short to waste on asshats.) Rather, listen to exactly what they don't like about the way you solved the problem, use that to fix the problem in a way they will like, and re-submit.

Repeat.

Post reply on HN