Tag Info

Hot answers tagged

128

I think the problem is the task: "I have been tasked with teaching other teams a new codebase". You have been given the wrong job, or maybe misinterpreted the job you've been given. By presenting at the code level, you invite code level thinking. Start at the system level and present the design and the design choices that were made. Don't allow extended ...


81

The key to becoming really good is working in a good team. Many amateurs work alone, so they only get that far. In a team, you learn from others, and you become disciplined because your peers will hit you with whatever comes handy otherwise. For that reason, I propose you join a team, e.g. an open source project, or make a hobby project with some friends.


61

I didn't have the if($n1 % $n2 == 0) method memorized. I haven't been coding for very long (started teaching myself SQL about 27 months ago and started coding in Perl about 20 months ago), but the quote above sounds like some things that I've heard from former students: How am I supposed to memorize which integration technique to use for every ...


58

"Park them". At the start of the lesson, explain what you are to discuss, and clearly explain what is considered Off Topic. If you are asked a question that is clearly OT, say so and move on. If they come back to it, write the question on a whiteboard (This is critical) for later discussion and move on. At the end of the lesson, when they are on their own ...


50

The road to become good at programming is the same as for singing or playing music: practice, practice, practice. If you spend enough time regularly developing software for several years, chances are you will become good at it - be it inside or outside working hours. Now, apart from spending more time practicing, there is another reason why professionals ...


40

Say "I'm a bit busy right now, you can ask on stackoverflow.com if you're really stuck." Eventually he will hopefully get the clue. Also, next time he comes to your desk say "Hmm I don't know, let's Google that and see..." or "Let's check the API docs." The combination of these two has worked for me with co-op students in the past - ...


35

Give him the chance to shine I've actually had a very similar position for some time but now I think I'm making some progress with the developer. I think in the end it will only be a case of commit shyness but I just told him "I need you to commit and push to the server so I can help you better if you get stuck, and you can help me better to oversee the ...


34

Sounds like a scam, not a job. Nigerian job offer? heh. I have never worked at, nor know anyone who has worked at a place that would require something of the likes of that in the field of software development in over 12 years of experience from startups to gov't to edu to fortune top 20. Keep looking - it will only get worse.


32

Many people won't like this idea, but I am advocating this wherever I can: regardless of the programming language and environment, if they don't have any experience and if there are maintenance tasks which come up from real world bug reports of customers of yours, try to make sure they get assigned to that kind of task at least for 30-40% (+) of their time. ...


31

Absolutely not. And IMHO it's a crazy policy. I can see the logic that the business doesn't want to get trapped in paying for training for staff who then leave. However, this generally happens in companies that under-pay staff - it should pay for the job someone will do, not for what they can do when they walk in the door. Two obvious consequences of this ...


26

You may think FizzBuzz is a toy problem; when will I ever need to use the modulus operator in a real program. But really you use it all the time. Three common examples: You are displaying a table and you want alternating background colors for different rows. You check if a row is even (row_number % 2 == 0) and display one color for even rows and one ...


23

Source Control: From my experience, colleges don't teach this well if at all. Unit Testing: Same as above (also reduces the amount of time they need to spend in a debugger) DRY/SRP/SOLID: Good, fundamental design techniques. DRY alone will help make them a better programmer, developer, and produce better quality code. IoC


23

You can teach them. Everyone does this in the beginning, even you. If this type of code makes it into production, it's the senior folks fault; not the junior. Edit: One of the things that I have done is I personally have taken to pro-actively asking people to review my code (including the juniors) before a release. The code gets reviewed, the junior ...


22

But I was stranded yesterday trying to figure out (not google) a solution for the FizzBuzz test because I didn't have the if($n1 % $n2 == 0) method memorized. Nobody memorizes that thing. You're supposed to come up with it on your own. If you know the modulus operator and you know what it does, then it's trivially a great fit to the FizzBuzz ...


22

First, don't panic. Imagine the worst that can happen. You try your hardest to understand the code base, can't get your head around it, tell your mentor, and he is disappointed and takes the responsibility away from you. But something good happened: you were honest about your limitations and didn't get in over your head and produce a bad product. That's ...


20

Anywhere from 0 to 5 or 7 (or so). Arguments for the low side: Not everyone is set out to be a mentor. I have worked with some developers who were so gruff that they would have scared someone into a new career. If you expect the senior devs to maintain the same level of output, then keep the number low. Arguments for a higher amount: Some devs ...


19

The problem is you are changing what the meaning of a branch is part way through the process. Initially, the v1 dev branch is for development. All new features go there. At some point in the future, it becomes a maintenance branch for the v1 release branch. This is the crux of the problem. Its not that the developers are sloppy, its that the permissions ...


18

No he shouldn't pay! You got it for free (according to your question). If your contract states he must pay back the costs, and the costs were zero. Then he should pay zero. Unless I've misunderstood the question and your company paid for the training but got a discount (certain amount of free seats) because you provided the venue. In which case I think it ...


18

I agree with others here that Maven seems to have taken over most significant projects that I've looked at. While Ant is highly flexible, the build file is not standardized, so when you move to a new project or company, the targets are named differently, the file is structured differently, the inter-target dependencies may or may not be established, etc. ...


18

Keep in mind that I don't have time to read several 1000-page tomes about abstract programming. So are you asking for someone to give you a five step check list that will make you a skilled programmer? That's not going to happen! As with any other discipline, if you want to get good at programming you have to spend time and effort practicing and ...


18

My advice would be to confront him about this particular example and see what he says. If he denies there being anything bad with the code, then I'm afraid there is little you can do. If he accepts that he made a mistake (even if he's defensive about it), then at least there is room for improvement. If you accept the time and effort on improving him, then ...


17

I had an experience like this with a junior programmer. I'll give you the anecdote, along with the obvious warning that what worked for her wouldn't necessarily work for anyone else. Her problem was that she had never had to deal with anything in college that wasn't a toy system you could reasonably be asked to do in a homework set. And so when she faced ...


17

Set expectations correctly and be honest, open and upfront. Make sure your goals are open and transparent. Start off discussions with the high level view as promoted by andy256 (+1) but also make sure that you include your objectives, e.g. "...as we look at this issue, lets make sure we don't focus on x, y and z. Let also make sure that we're not looking ...


16

But for an amateur programmer, how can train to become a good programmer? You become better by learning, which is part doing, part reflecting over what was done. So basically, theres no difference between hobbyist and professional, but the 'pitfalls' are arranged a little different. Amateur Pitfalls are, imho the need to finish your project, no ...


16

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


16

is it a danger if the developer does not have experience with the underlying technologies? Yes. (Learning takes time, and making mistakes is often part of the process.) or can a general developer who is accomplished in another area realistically pick up new technologies? Yes. (Picking up new technologies is something that generalists do all the ...


15

So my question is, would you persist with someone who is writing such obviously bad code? No. I would fire any professional C++ developer that lacked the basic understanding of memory management. If it's someone coming from Java or C# or something I'd give them some lattitude, but this is pure incompetence.


14

The good thing about learning C++ from C#, is that they look very similar. The bad thing is that they look very similar. You might feel I'm not making sense, but I'm trying to make a point. When I learned C++ coming from Java (I also know C#), I felt it was easy because their syntax are very alike, so that let me to made presumptions in which it made it ...


13

Communicate Don't leave your mentor or supervisor in the dark. It's acceptable to have blind spots, problems or difficulties. It's unacceptable to hide them and lead them on. This is obviously an issue, and issues need to be addressed as early as possible. Ask for Help and For Reviews If nobody at your office knows AS3, they may still be able to help ...



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