self-improvement

Good challenges/tasks/exercises for learning or improving object oriented programming (OOP) skills.

What is a good challenge to improve your skills in object oriented programming? The idea behind this poll is to provide an idea of which exercises are useful for learning OOP. The challenge should be as language agnostic as possible, requiring either little or no use of specific libraries, or only the most common of libraries. Try to i...

What is the single most effective thing you did to improve your programming skills?

Looking back at my career and life as a programmer, there were plenty of different ways I improved my programming skills - reading code, writing code, reading books, listening to podcasts, watching screencasts and more. My question is: What is the most effective thing you have done that improved your programming skills? What would you r...

What should a conference newbie bring to make the most out of their first conference?

I am planning to attend my first developer conference (Microsoft TechDays 2008 in Toronto). I have been looking around for suggestions so that I can prepare and make the most out of my first developer conference. Many articles make suggestions about asking questions, getting involved, being social. These are great! I am also wonderin...

What is the single best typing tutor for Linux? (Please only one program per answer)

After reading Steve Yegge's latest rant, I felt bad. What's the single best software for Linux to get me up to 100+ wpm? Please use good SO polling style and name one program per answer so to give others a chance to upvote instead of duplicating. ...

What's the best statically-typed language for a dynamically-typed language programmer to learn?

I've been a Ruby developer for several years, and a Perl developer before that, with some PHP somewhere in there. I want to expand my knowledge, and think the best way to do that will be by learning something very different from what I know. I know OO, and I know functional programming pretty well. What I don't know is a language that us...

Pursue career as "Software Engineer" or a "Lang/Framework-X Developer"?

I am currently a Software Engineering undergrad and recently began my senior year. I see on the horizon a choice that must be made: choosing a career path. For the past several months, I have been of the mindset that I should: Find a language and maybe a web app framework that I like Learn it Build some web apps to learn it better Try...

Sleeping problems, computer addiction

How do you keep your mind from racing late into the night, thinking about programming problems, keeping you awake? My sleeping disorder / computer addiction has impacted my personal life in a very negative way and I'm having a hard time doing anything about it. Taking pills won't help because part of me wants to stay awake. I keep on te...

Should we write software to be used at work, in our own time?

To clarify, I find that there are all sorts of fun, interesting little side-line development projects that get suggested or that we think of that improve the application we're working on, or the processes within the company that, for whatever reason, we aren't able to do at work or during business hours. Should we create and contribute ...

Conferences that offer videos for downloading?

One thing I love about ruby is that all of the conference's videos are posted online , so that people that could not attend can watch them. I'm sure most of you know about Confreaks , which offers them for download. Are there sites like that for other programming languages/conferences (or is google video the best shot)? ...

What are good ways of improving my programming skills during times of low energy?

What are good ways to improve my programming skills when I don't have the energy to think really hard? For example during illness (right now) or in the evening after an intensive day of coding yet still desiring to learn something new. ...

Keeping up to date?

What site or sites do you use to keep yourself up to date on the latest trends in development and/or to help continue to move forward your development as a programmer? I'm particularly interested in answers relevant to web development, php, mysql, or Drupal, but general interest or best practices sites are also appreciated. ...

Should I make my projects open source - publicly available?

I have several personal projects. Like every developer, I get new ideas every day. Often, I start my own projects, which I get to different levels of completion. Too often, I face the question of making them public, exposing other developers to my code and ideas. This makes me wonder, should I really do that? and why? or why not? P...

From small to large projects

I've been quite used to working on small projects which I coded with 1,000 lines or less (pong, tetris, simple 3d games, etc). However as my abilities in programming are increasing, my organization isn't. I seem to be making everything dependent on one one another, so it's very hard for me to change the implementation of something. ...

How to prepare for a programming competition? Graphs, Stacks, Trees, oh my!

Last semester I attended ACM's (Association for Computing Machinery) bi-annual programming competition at a local University. My University sent 2 teams of 3 people and we competed amongst other schools in the mid-west. We got our butts kicked. You are given a packet with about 11 problems (1 problem per page) and you have 4 hours t...

What CS class has helped you over and over?

The converse of my earlier question. Despite all signs at the time, Theory of Compuation and a Compilers class are the two where techniques learned there have been used again and again. Designing state machines as well as writing tokenizers and parsers have been key skills that have proven their worth. What have you found invaluable? ...

Given sufficient experience in C/C++, Python and Java, what would be another good language to learn, and why?

I have some free time on my hands and am interested in broadening my horizons. My background is in Python, C/C++ and Java. Does anyone have any recommendations on a new language to learn, and why? ...

What special 'trick' do you use to keep focus on your current task amoung the mass distractions of the net?

I find it quite challenging to keep myself focused continuously on the current task while continuously being distracted by some random email, chat, blog, rss feed... etc. Several time I think of unplugging my net connection and concentrate on the task at hand. It works, till I feel that I should search up something and few moments later...

What is the one programming skill you have always wanted to master but haven't had time?

For me, I've always wanted to finish the O'Reilly "Mastering Regular Expressions" book. When I need a Regexp, I manage to get the one I need eventually, but it takes more effort than it should. Learning a specific technology or language always seems to bubble up ahead of this. ...

Mathematics / Algorithmic Resources: ProjectEuler.net puzzles

I've used brute force for the most part for the ProjectEuler.net problems that I have been able to solve. One thing I'm finding is that, for some of the puzzles, I'm not able to find good resources for 'backfilling' my understanding of the problem domains the puzzles represent. What are suggested resources for learning about those topi...

What Quick Fixes Make You Queasy When You Code Them?

We've all done them, the short fix that will get the system back up and running until we can Do The Right Thing. What have you marked in your code with the dreaded //Hack comment? ...