Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
In over my head. How can I work with more advanced programmers? (arstechnica.com)
59 points by chinmoy on Oct 13, 2012 | hide | past | favorite | 23 comments


This Q&A is part of a weekly series of posts highlighting common questions encountered by technophiles and answered by users at Stack Exchange [...]

In other words, this is some content from a different web site, which we're re-publishing here because we can. I don't get it, what would be the idea of this, except for "content is good"? That people who might be interested in questions like this don't read the relevant SE sites, so they "need" Ars to step in and re-publish it? It's weirding me out.


Uh,

Stack Exchange gets people to post on there by letting its content out on the creative commons license (or whatever equivalent). IE, the posts don't belong to Stack Exchange any more than they belong to Arstechnica. They are doing what the license was intended to let them do. It is simply a matter of which presentation of the material do we like best.


I really like Ars highlighting these questions, I would often not have seen them if it wasn't for them republishing the answers. They also highlight questions which are relevant to people in the wider tech community that may not be working developers and expose them to some interesting questions.

Ars is hardly becoming an aggregation site, IMO they have always had thoughtful, high quality writing with a balanced perspective. One article a week is not a sign of a change in strategy.



I used to value Ars because they had actual writers, editors, and original content. This new trend they have of being another content aggregator is disappointing.


The point is SEO and social sites like ... this.


Yeah, why do people read "newspapers" and "encyclopedias" that are full of of rehashed information available as primary sources elsewhere?


This is actually a problem I wish I had. I'd love to work with an uber programmer who was better than me as long as they had some patience , not too much ego and were happy to help me learn.

What I find is more common though is working with very sub-par developers who have no interest in advancing their skills.


I think there are two different things you can aim for in improving your skills.

One is learning "uber-programming" and the other learning excellent software engineering. The uber-programmer is using super-sophisticated algorithms and crazy efficient stuff with syntax or just crazy stuff. The excellent software engineer is working to make the complicated stuff look as simple as possible and be maintainable by the least sophisticated programmer possible.

The great thing is that in any given project, you can probably find an opportunity to improve your skill in one of these two categories.

When I've worked with subpar developers, it gave me a chance to do the uber-stuff they couldn't/wouldn't do. But writing code that solved problems "in a way even Bob can understand" is actually an interesting challenge even if it's different than database tuning or whatever.


The last time I worked in a shop with "uber programmers," it was more like a CS circle-jerk oriented around who can come up with the more useless abstraction of working code. At any rate, your "as long as" qualification means you're probably looking for a company with older coders.


that doesn't really make sense, does it?

being a good programmer includes not creating useless abstractions, so what you're actually saying is "when i last worked with poor programmers they weren't very good". and, in response to that: well, duh.


Well, these poor programmers who weren't very good sure knew a lot about how to make code worse! You're right though, it's a struggle to characterize people who know too much.


You could argue they "Knew too much" but equally they could know too little. In other words they know enough about X to understand how to implement X but not enough but not enough about why to implement X.


You can quibble with what side of the fence I'm describing, but the facts (and my sense of them) remain. Yes, they didn't write good, maintainable code AIUI, and whether that's due to inexperience in writing maintainable code or to shoehorning CS training and metaprogramming into a web developer role is fairly irrelevant to me. As it happens, I think the latter is the bigger problem.


I really feel that if you don't feel you're learning from those around you, you need to find a new gig or environment for yourself.

I'm lucky to be in a situation where I'm surrounded by smarter programmers. I'm learning tons and the effects have been very noticeable. Some "better" programmers can be hard to deal with but if you have patience and a willingness to learn you will benefit greatly.


I just recently got the opportunity to join a team that includes some incredibly brilliant (and very well known) people. While it also meant a modest bump in salary, and the ability to work on a potentially very significant project, whenever someone asks me "How's the new job going?" I almost always find myself going on about how great it is to work with people much smarter than me...


Yeah! I don't want to trivialize it (a lot), because I understand it would be intimidating to live out, but I'd love to be in a situation that person is complaining about. "Help me, I'm learning too much too quickly!"

Instead I feel like I'm a regular person caught in the middle of a case study on the Dunning-Kruger effect.


I've worked with programmers who are miles better than me, had little patience, plenty of ego and with no interest in helping me learn. It was probably the best thing that happened to my programming career.


Show you'll put in the time, and I've found pretty much anyone will help you out with areas you are less confident in.

Also, I've found the Benjamin Franklin method of "ask someone to do something for you as a form of flattery" works amazingly well to get people to befriend/like you.


For anyone thinking/saying things like this: "they all use the most modern aspects of C++ (C++11, template, lambda, etc, etc)":

Take a swim in the ocean of Lisp (Clojure/Scheme, whatever...) and you'll never feel overwhelmed by things like these again. You'll realize that you're all kinder-garden children and the only difference is that the rest had been playing with shinier toys... THE TRUTH IS BEYOND SYNTAX AND LANGUAGE FEATURES :)


I'd suggest: try to understand the code, the problem and re-factor it to get rid of these extra abstractions and templates.

You will either be able to a) get rid of these unnecessary constructs b) understand why these were necessary in the first place.


In general, if you need to know something but you don't know it yet, a decent strategy would be to learn it. This is usually one of the more practical and pleasant options.


> Lo and behold, my new job is filled with programmers with 5-10 years experience of pure coding and they all use the most modern aspects of C++ (C++11, template, lambda, etc, etc).

Those are noobs. Look e.g. at V8 to see real, advanced C++ code: http://code.google.com/p/v8/source/browse/trunk/src/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: