language-agnostic

What areas of specialization within programming would you recommend to a beginner

I am a student studying software development, and I feel programming, in general, is too broad of a subject to try to know everything. To be proficient, you have to decide which areas to focus your learning and understanding. Certain skill sets synergize with each other, like data-driven web development and SQL experience. However, all t...

Best Way to Begin Learning Web Application Design

I'm a long time hobbyist programmer interested in getting into web application development. I have a fair amount of personal experience with various non-web languages, but have never really branched over to web applications. I don't usually have any issues learning new languages or technologies, so I'm not worried about which is the "be...

How would I get started writing my own firewall?

There is previous little on the google on this subject other than people asking this very same question. How would I get started writing my own firewall? I'm looking to write one for the windows platform but I would also be interested in this information for other operating systems too. Thanks! Edit: I wish I could accept multiple an...

What considerations should be made before reinventing the wheel?

All too often I see other people reinventing the wheel, and when I do, I wonder what factors played into their decision to do so. There are times I reinvent the wheel consciously, merely because I am interested in the mental exercise, and other times without realizing it because of a lack of research. What are considerations you use b...

What do you think of developing for the command line first?

What are your opinions on developing for the command line first, then adding a GUI on after the fact by simply calling the command line methods? eg. W:\ todo AddTask "meeting with John, re: login peer review" "John's office" "2008-08-22" "14:00" loads todo.exe and calls a function called AddTask that does some validation and throws...

Do You Really Know Your Programming Languages?

I am often amazed at how little some of my colleagues know or care about their craft. Something that constantly frustrates me is that people don't want to learn any more than they need to about the programming languages they use every day. Many programmers seem content to learn some pidgin sub-dialect, and stick with that. If they see a...

Suggestions on starting a child programming.

What languages and tools do you consider a youngster starting out in programming should use in the modern era? Lots of us started with proprietary Basics and they didn't do all of us long term harm :) but given the experiences you have had since then and your knowledge of the domain now are there better options? There are related queri...

What constitutes beautiful code?

For anyone that is passionate about software development, I'm of the opinion that you should always strive to write beautiful code; however, is there a clear definition of what beautiful code really is? On one hand, I see elegant code being something that's easy to read while simultaneously solving the problem at hand in the most effici...

What's your/a good limit for cyclomatic complexity?

Our customers have begun to impose cyclomatic complexity requirements on the software within our products, and our internal process "improvement" group has decided to make cyclomatic complexity part of our coding standards. Both the customer and our internal group have set their (recommendation for an) upper limit at 10. I've argued that...

What skills do you need for proper UI/Interaction/Functional design in Web Apps?

When you to develop web applications from scratch, what are the skills needed, to produce usable and interaction-rich products? Do you do UI Prototype first? Do you use User Stories? Some agile methodology or best practice you'd recommend or actively advocate? In short: What skills make you transcend from requirements gathering to A...

Switching to ORMs

I'm toying with the idea of phasing in an ORM into an application I support. The app is not very structured with no unit tests. So any change will be risky. I'm obviously concerned that I've got a good enough reason to change. The idea is that there will be less boiler plate code for data access and there for greater productivity. Do th...

How do I find the Excel column name that corresponds to a given integer?

How would you determine the column name (e.g. "AQ" or "BH") of the nth column in Excel? Edit: A language-agnostic algorithm to determine this is the main goal here. ...

When to (notionally) "Build your own compiler"

What is your decision procedure for "roll my own" versus "introduce a new dependency"? The value of code reuse is widely touted, and for good reason, but it does not come for free. Joel's In Defense of Not-Invented-Here Syndrome makes the point that you don't always want to be at the mercy of outside entities. I work in big science. Mo...

Why is Peer-to-Peer programming a hard topic to obtain good research for?

After reading a bit more about how Gnutella and other P2P networks function, I wanted to start my own peer-to-peer system. I went in thinking that I would find plenty of tutorials and language-agnostic guidelines which could be applied, however I was met with a vague simplistic overview. I could only find very small, precise P2P code w...

What is the best way to learn recursion?

When I started in programming I started with c++ and was doing recursion in my second semester in a data structures class. I don't even remember how we started it, I think it was linked lists, but its a concept that I picked up easily and can jump into quickly, even when I haven't written any recursive code in quite some time. What is t...

Factorial Algorithms in different languages

I want to see all the different ways you can come up with, for a factorial subroutine, or program. The hope is that anyone can come here and see if they might want to learn a new language. Ideas: Procedural Functional Object Oriented One liners Obfuscated Oddball Bad Code Polyglot Basically I want to see an example, of different way...

Why are relational set-based queries better than cursors?

When writing database queries in something like TSQL or PLSQL, we often have a choice of iterating over rows with a cursor to accomplish the task, or crafting a single SQL statement that does the same job all at once. Also, we have the choice of simply pulling a large set of data back into our application and then processing it row by r...

What's the point of OOP?

As far as I can tell, in spite of the countless millions or billions spent on OOP education, languages, and tools, OOP has not improved developer productivity or software reliability, nor has it reduced development costs. Few people use OOP in any rigorous sense (few people adhere to or understand principles such as LSP); there seems to ...

'goto' usage

I've long been under the impression that 'goto' should never be used if possible. While perusing libavcodec (which is written in C) the other day, I noticed multiple uses of it. Is it ever advantageous to use 'goto' in a language that supports loops and functions? If so, why? ...

One book to learn/get introduced to a programming language

If one would be allowed to read only one book to learn new programming language what book would that be? My (rather small) list would be C - C Programming Language by Brian W. Kernighan, Dennis M. Ritchie C++ - The C++ Programming Language by Bjarne Stroustrup Java - Thinking in Java by Bruce Eckel Lisp - Structure and Interpretation ...