Hot answers tagged

448

IMO this attitude comes from people that have horrible, soul sucking jobs, combined with piss-poor time management skills. If you're basically typing web forms all day, go out and get a more challenging job, or start your own. Here's the thing. A concert musician (cellist/pianist/whatever), will practice at most 6 hours per day. Most only practice a few ...


232

If I were in your shoes, I would probably try it this way: first, finish the current project - at least partially - as soon as possible, but in a working state. Probably you need to reduce your original goals, think about the minimum functionality you really need to see in "version 1.0". then, and only then think about a rewrite from scratch (lets call ...


106

Finished IT projects, even faulty ones, are much better than unfinished ones. Unfinished ones can teach you a lot too, but not as much as finished ones. You may not see it now, but you get an enormous amount of value working with even faulty code. My vote goes for finishing and then, maybe, refactoring - if needed. When you start working with more ...


98

Time is never found. It must be carved out, stolen, borrowed, created and wrested away from its captors. -me To go beyond the soundbite answer, every time I ask myself this question, I find that a stark chronicling of my days for a week or so makes it REALLY clear where that time can be taken from. The same has been true of every person who has even been ...


71

It doesn't make you a bad developer, but unfortunately, you still have to compete with the ones who do. Read this, from Seth Godin's Blog: Unreasonable It's unreasonable to get out of bed on a snow day, when school has been cancelled, and turn the downtime into six hours of work on an extra credit physics lab. It's unreasonable to launch a technology ...


68

Manipulating large amounts of data in memory is where pointers really shine. Passing a large object by reference is equivalent to just passing along a plain old number. You can manipulate the needed parts directly as opposed to copying an object, altering it, then passing back the copy to be put in place of the original.


66

The reason he says is that if I have any free time at all in my life, even on weekends, they should be spent working for his company. Quit the company NOW!


57

To answer the question posed: Not programming in your spare time does not make you a bad developer, however, programming in your spare time can make you a better developer. Programming in your spare time certainly won't hurt your skills, but you shouldn't feel obligated to do it. Programming seems to be a relatively unique field because for many people it ...


52

I would happily start the project over. You're a student, and you're still learning. This puts you in a very different position than the question you linked to. You have no professional responsibility for your code; if you were to delete the whole project right now and walk away, you would suffer no repercussions. This is a huge advantage for a ...


51

First of all, remember: shipping is a feature. It's better to release something imperfect than to release nothing at all. The other thing to note is that these are Hobby projects. If you don't meet deadlines or lose interest it's not a big deal. You're doing the project for fun after all.


48

Take it from someone who has the same problem, finishing at least some of your projects is very important. It's completely ok to do some experimental projects and abandon them when you've learnt what you need to or it simply wasn't a good idea to start with. However, creative people tend to like the challenging first part of any project more than the ...


42

The pointer concept allows you to refer to data by address without duplicating the storage of data. This approach allows for writing efficient algorithms such as: Sorting When moving data in a sort algorithm you may move the pointer instead of the data itself—think of sorting millions of rows on a string of 100 chars; you save a lot of unnecessary data ...


40

Obviously finishing a project is important in the "real world" as unless the project is completed and delivered you don't (or your employer doesn't) get paid. However, for hobby and learning projects it's a little more complicated. Having finished projects demonstrates to potential employers that you can deliver what you set out to deliver, but it depends ...


36

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


32

After 30 years of professional software development, I still create bugs. I still find patterns I don't know. I still learn from my colleagues, and encounter stuff I don't know every day. Most experienced developers will judge you on how you respond to issues and criticism, whether you learn from your mistakes and improve your product to meet the users' or ...


30

I don't. I suffer from the same problem that you do: I have a wife and three kids. On top of that I am working on my Masters degree. I have tried several times to start up some side projects and every time I do something comes up (I have to coach my sons soccer team or something else). Here is what I am trying lately and it seems to be working (although ...


30

You're probably still in the "learning fast" part of your development. There's a good chance that a few months from now, you'll find that your new and awesome design is horribly broken in ways you weren't even aware of when you started. Get things done - this is the single most important thing you need to learn. Believe me, I know plenty of people (not just ...


29

Ok, I was the same way. All I wanted to do was program, and I was doing ok in my other classes so I didn't care. However, to get your choice of jobs you should do as well as you can. If you have a specific field you want to get in to, they will be looking for the best students. Studying hard and getting good grades even in subjects that don't matter to your ...


29

I'm surprised no other answer has mentioned this: pointers allow you to create non-contiguous and non-linear data structures, wherein an element may be related to multiple others in complex ways. Linked lists (singly, doubly, and circularly linked), trees (red-black, AVL, trie, binary, space partitioning…), and graphs are all examples of structures ...


25

Fogbugz (free individual license) if its a longish project or a simple to do list (using Google tasks)


25

No. I've seen some nightmarish effects of a dozen developers all adding their own little "util.h" style libraries to projects, and have it turn into a giant mess of inconsistent function naming and behaviors. Much like PHP. So for that reason I avoid doing it. I avoid needing to do that by using programming environments that give me nearly all the tools ...


25

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


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


23

If I have seen further it is by standing on the shoulders of giants. Isaac Newton It is not cheating if the code is open source and you've taken the time to understand it. Now obviously this isn't always possible due to time constraints but try and always have high level overview of the code you are using. Always remember that C was derived from B.


23

No it doesn't make you a bad programmer. Depending on what you do it may make you a better programmer in the long run. Early in your career it may influence how fast you learn the variety of skills you need. However, you may be picking up skills and information that will help in the long term. Getting some exercise wouldn't hurt either. There is a fair ...


23

Put it out there. It is not that difficult to do this with a social coding site such as GitHub or Bitbucket. Most of the stuff of what you'll put out probably won't be used a lot, but that is ok. That is pretty much normal in these social coding sites, and a lot of projects get abandoned (even some useful ones). But the greatest thing is that others can ...


22

I follow the "Make it Work, Make it Right, Make it Fast" ideology in software development. Make it Work: Write the core functionality, so that the project is usable. Do what you have to in order to make everything work, even if it means ugly code. Make it Right: Fix bugs and refactor the code so that it is easier to read, understand, and maintain. Make it ...


22

Rewrite it. Non-working code has little value, and three thousand lines is not much code. It won't take nearly as long as it took to write the code you currently have, and it will be much better. I have often thrown out five hundred or a thousand lines of poor code, and often the rewrite is one-fifth as long. Most of the notions around "don't rewrite" ...



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