Stack Exchange Network

Stack Exchange network consists of 175 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Visit Stack Exchange
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 ...


127

I am of the mindset that it is essential for a good development environment to allow for an hour or two at most for exploration and learning, barring when it's "crunch time" on an application of course. An environment which doesn't do this is a red flag in my book because it tells me they don't value improvement. EDIT Worst of all is the place that ...


102

No, it is not a substitute, but a perfect complement. I feel a combination of the two holds a lot of power. Why is it that a good lecture teaches you more than just reading a book? Interaction and the ability to ask questions. By just reading a book, some questions might pop up to which you can't find any answers. Look for those questions here, or ask them ...


100

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


60

Your problem is not Scrum (and as Jarrod Roberson mentioned in comments, it is not Scrum what you're describing) - it's Product Owner's micromanagement and your (and Team's) lack of assertiveness. "However, due to scrum methodology, now many decisions simply come from product owner. He prioritizes PBIs, he analyzes how software should work, even sometimes ...


50

However, I now feel like I'm always getting told to do something, instead of deciding to do something. This is a serious indicator that something has gone off the rails. An agile project should not feel like this. That "people over process" rhetoric should include "we don't force our people to do things that suck." Here are some ideas: Are you doing "scrum ...


49

I think the person you refer to may have mixed two different levels of knowledge/ability. The first is general problem solving ability. This is not going to fade away, as others have explained with good examples. I myself had two breaks in my career as a software developer, once for a year, and the other was close to a year, during which I did practically ...


44

I think that almost all employers end up paying people for about 1 - 2 hours of learning at least a few days out of every week. Even if you are just searching documentation, you are still learning something that you didn't know before. I personally dislike setting up 'slices' of time for others, it feels a little too much like managing someone else's time. ...


44

Unit testing. After I started applying unit testing I found that the code I wrote became better structured. It was then easier to avoid and spot bugs. I spent less time debugging, but more time with writing unit test. I also think that the time invested in unit tests has a better return of investment then debugging. After a debugging session I just fixed ...


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

How do you guys know that you are writing the most robust code possible without overengineering? What do you consider robust code? Code that is already future proof and so powerful that it can deal with any situation? Wrong, no one can predict the future! And wrong again, because it'll be a complicated, unmaintainable mess. I follow various principles: ...


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

Unit testing, so that you know whether your code works in the first place. At least some amount of upfront design, so that you know what you are coding. Code reviews, because two heads are better than one, and four eyes are better than two. Not to mention that even trying to explain your code to someone else reveals many problems. Version control, so that ...


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.


32

No. Nobody understands what's going on at the hardware level. Computer systems are like onions -- there are many layers, and each one depends on the layer underneath it for support. If you're the guy working on one of the outer layers, you shouldn't care too much what happens in the middle of the onion. And that's a good thing, because the middle of the ...


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

Anonymously is best... However, I would take them out to lunch 1 at a time. I would ask them what they think could be improved at the company and don't talk about yourself (You are the company from their perspective). I think a lot of this depends on how you interact with them. Feed back is best given informally and is best done by you watching what they ...


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

What you are describing is NOT SCRUM Your product owner is over stepping his bounds if he is telling you how to do your job technically, that isn't what SCRUM is about at all. SCRUM is about freeing the developers to concentrate on development issues and empowering them take charge of determining how long things take and how to do them. SCRUM is about ...


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

Can't really speak for all Lisps but Clojure is definitely a hot and relevant language at present. A London Clojure User Group I went to earlier this week had over 100 attendees.... I've found it to be a very enlightening experience to learn Lisp in the form of Clojure over the past year (after a lot of experience with Java and C#). Main reasons for this ...


27

It needs to be a labor of love. Why do you want to be a programmer? Do you want to make cool video games? You have a great idea for a mobile app? You want to be able to build amazing web applications? Dive deep into math? If you don't know the answer, then give it some thought and then explore how to make it happen. Books, blogs, etc are great, but there's ...


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