Live data from Hacker News

Ask HN: How to step up my coding skills?

news.ycombinator.com

41–50 of 57 posts

Re: Ask HN: How to step up my coding skills?

#41
post #18

Code. Build something. Figure out something you'd like to build, then figure out out to build it. You can't help but learn if you take that route. If that's not your cup of tea, then start contributing to open source projects. Learn Git and Subversion, then start taking tickets for Firefox or Chrome. Start off with the easy things, then work your way up. There's lots out there that needs attention, and being able to…

I think the most significant thing to learn at the OP's stage is dealing with bigger codebases. Anyone can program something in 1000 LOC. 10000 is already harder, but I think there is a guenuine difference when it goes to the next level, because at that point, you cannot do everything, and you are forced to spend more time reading than writing. Contributing to open source projects is the obvious thing to do there. Tr…

I'm glad to see that I'm not the only person that uses the x10 LOC as a way of judging a programmer's skills. I generally think of it like this:

10 = Sam's Learn Java in 24 hours

100 = did some programming courses at highschool / university

1000 = baseline professional programmer. Has already understood the basics of writing reasonable code at the function level

10000 = experienced programmer - will stand out in a corporate environment, probably the minimum that you want working on a startup. Understands architectural issues and mastering the environment outside the application

100000 = star programmer. That said, I don't see a big difference between the last two categories in terms of pure programming skills. The difference is more in that the 100000 LOC programmer is capable of directing a team, explaining the system architecture to others, making the code more modularisable and accessible to others (doing the necessary makefile magic so that code will compile as C or C++ for example, or providing a plugin architecture, or adding bindings for a scripting language etc)

To go back to the original question, if you find that you are limited to 1000 LOC programs, looking at the list, you need to look a bit more at architectural issues - encapsulation, OO, functional style programming, that sort of stuff, to get you to a level where your code won't descend into an unholy mess when it starts getting bigger.

I actually use the size of codebases written entirely by the candidate as an indicator in job interviews - it gives a good feeling of where the person is at.

Re: Ask HN: How to step up my coding skills?

#43

You can learn a lot in 6 to 12 months, but you probably shouldn't expect to become a skilled developer in that time period. There are a lot of edge cases that you just have to experience to understand, and you'll never stop experiencing them, as long as you're programming. These days, my advice -- if I felt qualified to give any, which I don't -- would be to decide now whether you want to be "a programmer", or "a (CO…

PHP is not an easy language for someone just learning programming, it has tons of annoying quirks and is hard to debug. Visual Basic is better, I'd also reccommend Ruby. Not only is it a very easy language to learn, it also provides him with decent career prospects.

Re: Ask HN: How to step up my coding skills?

#44
post #16

Look at it from point of view of employer. I'm an employer and looking to hire a coder, what am I looking for. * Someone who knows how to code; * How do I know if they can code if they don't have years of experience coding with references... a portfolio would convince me. To get started how about running your own apache server with your own blog on to describe the projects you're working on. Your first post could be…

"Running your own Apache Server"

What is this the 90s? Considering how many better alternatives that are available on the cloud advising someone new to programming to set up their own server is a waste of time. That energy would be better spent learning something interesting. A better idea would be to write your own simple CMS for your blog. That would be a better exercise and a better demo of your development skills than setting up an Apache server which just shows that that you can follow a long series of tedious steps rather than actual coding.

Re: Ask HN: How to step up my coding skills?

#45
post #18

Code. Build something. Figure out something you'd like to build, then figure out out to build it. You can't help but learn if you take that route. If that's not your cup of tea, then start contributing to open source projects. Learn Git and Subversion, then start taking tickets for Firefox or Chrome. Start off with the easy things, then work your way up. There's lots out there that needs attention, and being able to…

I think the most significant thing to learn at the OP's stage is dealing with bigger codebases. Anyone can program something in 1000 LOC. 10000 is already harder, but I think there is a guenuine difference when it goes to the next level, because at that point, you cannot do everything, and you are forced to spend more time reading than writing. Contributing to open source projects is the obvious thing to do there. Tr…

I'd like to add a quirk to that requirement. You have to be able to build something large and ship it (and maintain it). Anybody can continue to build and build and build and you end up with a really large codebase that's bloated/duplicated/buggy and that never work in production.

Re: Ask HN: How to step up my coding skills?

#46
post #18

Earlier quoted context omitted.

I think the most significant thing to learn at the OP's stage is dealing with bigger codebases. Anyone can program something in 1000 LOC. 10000 is already harder, but I think there is a guenuine difference when it goes to the next level, because at that point, you cannot do everything, and you are forced to spend more time reading than writing. Contributing to open source projects is the obvious thing to do there. Tr…

I'm glad to see that I'm not the only person that uses the x10 LOC as a way of judging a programmer's skills. I generally think of it like this: 10 = Sam's Learn Java in 24 hours 100 = did some programming courses at highschool / university 1000 = baseline professional programmer. Has already understood the basics of writing reasonable code at the function level 10000 = experienced programmer - will stand out in a co…

I don't know about saying 1000 LOC is a baseline for a junior developer. I did second year software engineering last semester and our final project was about 1000 LOC. Granted, that was C, which tends to be... verbose. Even our python implementation of something similar averaged 450. Point is, I don't think 90% of the people in that class, myself included, could start as a junior developer today and be expected to succeed.

Re: Ask HN: How to step up my coding skills?

#47
post #16

Look at it from point of view of employer. I'm an employer and looking to hire a coder, what am I looking for. * Someone who knows how to code; * How do I know if they can code if they don't have years of experience coding with references... a portfolio would convince me. To get started how about running your own apache server with your own blog on to describe the projects you're working on. Your first post could be…

"Running your own Apache Server" What is this the 90s? Considering how many better alternatives that are available on the cloud advising someone new to programming to set up their own server is a waste of time. That energy would be better spent learning something interesting. A better idea would be to write your own simple CMS for your blog. That would be a better exercise and a better demo of your development skills…

I will doubt web development skills of anyone who has no understanding how web servers work and what's happening server-side.

Re: Ask HN: How to step up my coding skills?

#48
post #42

Code a lot on things just outside of your comfort zone.

Good comment! I couldn't have said it better myself. This is the way I learn new stuff. If coding wasn't "scary" every now and then, I wouldn't have learned anything!

Most of all, I'd say MOTIVATION is an important factor. I'm guessing very few programmers, experienced or not, sit all their time off from work/school programming and/or always have that "oooh-I-want-to-go-home-and-start-up-a-long-session-of-" all the time. At least _I_ need some motivation and inspiration every now and then. I go to a lot of live programming forums and also watch a lot of youtube programming/presentation videos just to get inspiration and to get my motivation up. Often these events are way out of my field of programming, but I still go, because I always feel good and full of spirit when leaving. This goes for me personally, of course, but may be a good advice for you too.

Having put this from my point of view, I would love to get some advice on where to get started on open source projects or the like, where I can get smaller tasks to complete. (I think that that Chrome thing that was mentioned in the start of this thread might be out of my league, but I'll give it a try.)

Re: Ask HN: How to step up my coding skills?

#49
post #19

Code. Build something. Figure out something you'd like to build, then figure out out to build it. You can't help but learn if you take that route. If that's not your cup of tea, then start contributing to open source projects. Learn Git and Subversion, then start taking tickets for Firefox or Chrome. Start off with the easy things, then work your way up. There's lots out there that needs attention, and being able to…

Building something doesn't teach you much about quality if you don't have someone to review/assist every now and then.

That is when joining a OS project makes same. Then you will have a whole mailing list reviewing your patches, and discussing all kind of architecture decisions.

Re: Ask HN: How to step up my coding skills?

#50

Earlier quoted context omitted.

I'm glad to see that I'm not the only person that uses the x10 LOC as a way of judging a programmer's skills. I generally think of it like this: 10 = Sam's Learn Java in 24 hours 100 = did some programming courses at highschool / university 1000 = baseline professional programmer. Has already understood the basics of writing reasonable code at the function level 10000 = experienced programmer - will stand out in a co…

I don't know about saying 1000 LOC is a baseline for a junior developer. I did second year software engineering last semester and our final project was about 1000 LOC. Granted, that was C, which tends to be... verbose. Even our python implementation of something similar averaged 450. Point is, I don't think 90% of the people in that class, myself included, could start as a junior developer today and be expected to su…

It's not clear in my original post, but I was talking explicitly about what a programmer can achieve by themself, without any aid from peers/mentors. I don't think your example contradicts that. How many of your classmates actually did the project by themself, without getting aid from tutors/lecturers, discussing ideas with classmates, etc? And even if they did, the problem still isn't directly comparable, because you've presumably been discussing the ideas that you are using in your projects during the course. The ideas are fresh in people's heads. This is not true in the real world, where you can be assigned to working on a project that uses skills that you haven't touched for years.

Anyhow, our discussion is a little theoretical. In practice, I can say that what I described is really truly what you find when you work in a large corporation writing code. I know it's hard to believe, but have a look around at the horror recruiting stories on this site, or stories talking about how enterprises do software development. It's not a pretty picture. It's not just that your baseline programmer can only write a project of about 1000 LOC, but also that there are a significant number of "developers" that can't even do that. Hard to believe, until you've seen it for yourself, but true nonetheless.

Post reply on HN