190

My response would be to say "I'm a little busy right now, can you email me and I'll deal with it later". Chances are some of his questions are legitimate, by forcing him to email you it doesn't interrupt your flow and he is unlikely to bother detailing the problem in an email if its trivial. You then also have a record to show to management if his questions ...


101

It's critical. I don't think I've ever known a good programmer who wasn't self-taught at some level. As a hiring manager at a large company, I can say that a candidate who describes personal projects and a desire to learn will trump one with an impressive degree every time. (Though it's best to have both.) Here's the thing about college: Computer ...


91

Why do developers ask "why" when someone asks them how to implement a solution? Because it requires more knowledge to evaluate whether a solution is appropriate than it does to actually implement the solution. It's very difficult to believe someone when they say, "I don't know how to do this, but I know for sure it's what I need to do." Programmers ...


78

An objective response: While my initial response to this question was based on my empirical experience as a soon-to-graduate CS student and my projected opinion of the type of people I wanted to work with in the CS field. There is actually an objective (with respect to the subjective opinions of the ACM SIGCSE and IEEE computing societies) answer. Every 10 ...


61

I'd like to give you some warning and some suggestions. Warnings: Don't over-estimate your knowledge: right now I can assume you know enough to write a simple application and more than what is actually taught in class. But that doesn't make you a "professional programmer"; it can make you a "freelancer" at most. Don't under-estimate the value of what is ...


44

First thing to do is have a frank discussion with the guy in question. Do it one to one instead of in a group or he might feel ganged up on (possibly deservedly so). Ask him why he keeps asking these questions, explain how disruptive this is to your work - see what he has to say. Depending on what you glean from this conversation, try to see if he can learn ...


43

Is LISP still practiced/used in todays world, or is it a legacy language Yes, it is, but you have to know where to look. People who use LISP don't tend to shout too loudly about it but there's a handful of examples of a few high-profile startups having used it to great effect over the last 20 years. It is also very popular with small companies in Europe. ...


42

A constructive way of approaching this (because you say it feels like this is because of lack of competence), could be as follows: Try coaching him into the direction of the answer, but try to make him come up with the final answer. This way, he will learn how to come up with trivial things himself, and also he will become more confident about his own ...


39

In Real Life™, I would rate this skill as a "nice to have", but not at all required. In a university setting it is different, however. An ability to code without documentation can be used as an indirect indication of student's familiarity with the subject. In a sense, seeing you code something without touching the documentation tells the professor that you ...


38

"Working fine" is indeed a great metric, but if you are the only one in the team able to decipher what you wrote, and thus maintain it, the code is close to worthless for the company for the mid or long-term. A good code is at least : working as intended human-readable / clear easily maintainable easily extensible for future changes safe without unneeded ...


35

Unless the project is aimed for developers (eg: a development framework, in which case you WANT them to criticize it if it makes you learn even more), you shouldn't worry. But even then, there are many open source projects aimed for developers that are crap, yet people love them because they go to the point (think of Codeigniter, which is very poorly ...


35

Have you thought about creating open source projects for the applications you have written and hosting them online? SourceForge.net or GitHub.com are good open source project hosts. This will help gain visibility for your applications.


30

As someone who has employed these kinds of people before, let me tell you that becoming aware of this problem is a really good deed. What I wanted my people to do in these circumstances was: Start saying no. This is difficult because these people are very good at what they do, which is getting other people to help them. Very good. [see note 1] If you are up ...


30

Am I too aggressive about the changes which i am proposing ? Without specifics (what new techs you're proposing, why they're rejecting them, where they feel that DRY is impractical and why, etc), it's hard to evaluate the amount of merit to your proposals and that's important for your aggressiveness. If you want them to use a new framework because you ...


29

Self-teaching is very important. You cannot rely on a formal education to teach you everything you need to know about your field. However, that being said, a formal education is also very important if you want to enter that career field well-prepared and well-equipped. I am on my way to college and have spent the past four years teaching myself software ...


28

You're missing the point. Jeff Atwood is saying that being an excellent programmer requires more than just coding skills. It also requires being a good designer, working well with other people, and in general becoming a better thinker and problem solver. The greatest missing skill is somebody who's both good at understanding the engineering and who ...


27

If he liked the product you built, but is stuck up on your use of Backbone, you both need to have a conversation about the desired tech stack. As developers, we ought to use tools that are readily available, and consequently, smoothly move our flow of work. If he expected you to build the front-end from scratch, he should have been explicit and had good ...


26

First of all, let's be clear: most of the 16 YO programmers will not really impress the community. There is a reason for that in my opinion. Being a good programmer does not only rely on programming skills. As you hopefully see during your CS major, programming is only a subset of computer science, and most of the people winning prizes (academic prizes at ...


25

There's a difference between what we do as software engineers and what a violinist (or anything else that requires physical practice would do). A violinist spends hours practicing methodically because they are teaching their brain very specific patterns of how to interact with an instrument. Practicing software engineering also involves learning patterns. ...


25

Your code has problems. So does mine. Anybody else answering this question? Their code has problems too. Unless it's, say, 10 lines or less, it's flawed. Maybe tragically so. To be a developer is to CONSTANTLY mash yourself up against the limits of your abilities and understanding. It may not be like this for ALL developers, but for me and for the ones I ...


24

As a general rule of thumb, open sourced programs have three groups of people who look at the source code. People who are considering modifying the code to make the program work slightly differently for them, to port it to a different platform, or as a jumping-off point for their own programs. If they don't like the code, they typically just won't use the ...


24

I once heard a résumé described as "a balance sheet that shows only your assets but not your liabilities". Based on this definition, you want to include projects that will be an asset to you in getting the job while leaving out those that might be a liability. This means they should be relevant to the job you are applying for and show off your best work. ...


24

I've seen some course material from MIT, and it was shockingly bad. They had teaching materials which required VC5, bunches of implicit global variables, passing colours as "Blue" instead of 32bit ARGB, let alone 4x [0,1] floats, that sort of thing. I wouldn't trust a curriculum or code just because it comes from a big-name university. My CS degree (from a ...


23

Working without internet is a skill. You don't have it, as most developers. The thing you must ask yourself before being worried is if you need this skill in your life. Chances are, you don't, because at every developer job with Joel Test higher than zero, you will have a fast internet access. Then, you have a choice: Either you spend years learning how ...


23

First, despite the way your question is formulated, there is no end to any studying, especially not in our field, where new things pop up faster than you can read about them. That being said, when you want to improve, there are the following categories that I'd consider. For the most benefit/ROI you should choose something from your weakest area of course. ...


21

There was a guy once who had a little bug in his code, so he took it to StackOverflow and asked for help. StackOverflow: Java (generating numbers with no repeats ). I looked at his code and I pointed out to him that his HashSet was perpetually being filled with values but it was never cleared. So, he asked me: "how do you clear it?" I have to admit that I am ...


21

Under the heading of "etc." comes something which can easily take 50% or more of your time. Learn how to debug. This means learning the Scientific Method. I mean really learning it. And then applying it with brutal self-honesty. Learn how to state precisely what you know is true, what you know is not true, and those things which you don't know. Any time ...


20

It is completely normal. Hardly anyone can say that he/she knows the syntax of every PHP or Java class, function or framework. Your brain is better used for problem solving than for memorizing things. Obviously you tend to memorize things you use in a daily basis but as soon as several month pass without doing that specific thing, you forget the syntax. ...


20

I'm not sure that thinking about a problem ahead of time vs. iterative approach are contradictory to each other. Just like many other things, I think you should strive to achieve the balance between the two. How do you find the balance? That's something you learn with experience and often time best lessons (i.e. stuff that gives you experience) is when you ...


19

Send him the link to Stack Overflow. If it really is laziness then it shouldn't be your responsibility to backfill his willingness to complete work. If it is a lack of ability then let him cargo cult on his own dime and not yours. You have a professional responsibility to your employer to do your best work and you can't allow others to compromise you. ...


Only top voted, non community-wiki answers of a minimum length are eligible