self-improvement

MSc in Software Development vs. BSc in Mathematics

Hi, I am interested in doing some part-time study to enhance my career options. I already have a degree in Computer Science and have been working as a software developer for the past 4 years. I enjoy working as a developer, and want to continue writing code; I could see myself as team leader in the next 5 years, but I have no interest...

Hardware knowledge in computer science?

How much hardware understanding does one need to fully comprehend "Operating System" and "Computer Architecture" courses one takes as a computer science student? ...

How to learn the necessary anthropology to create social software?

Joel Spolsky repeats over and over that today, knowing a bit of anthropology can be very useful for a programer because much of what's being created is social software. How can someone that already knows the computer science learn the anthropology needed to know how human beings works? Any books? Any recorded lectures? ...

What is the PHP or C# Equivalent of Ruby's Depot Application?

The book Agile Web Development with Rails has a great application that it takes the reader through to introduce them to the process of developing a real application with Ruby on Rails. Does PHP or C# have an equivalent? At the very least, can anyone think of a good practical exercise for learning PHP or C# "as you go" or through applic...

What is the most effective programming ritual to have?

Looking back at my life and career as a programmer, there are a number of rituals or habits I have developed when it comes to the actual activity of designing and writing software. My question is: What is the most effective ritual you have that improves your ability to either design or write software? What would you recommend to others ...

Do you know more interactive tutorials/courses like Try Ruby? (for any language)

Do you know more interactive tutorials/courses like Try Ruby? (tryruby.hobix.com) Once a friend showed me a similar tutorial but for learning C, it was an amazing little program for DOS. Anyone know it? ...

Postgresql and PHP: is the currval a efficent way to retrieve the last row inserted id, in a multiuser application?

Hi guys! Im wondering if the way i use to retrieve the id of the last row inserted in a postgresql table is efficent.. It works, obviously, but referencing on the serial sequence currval value could be problematic when i have many users adding rows in the same table at the same time. My actual way is: $pgConnection = pg_connect('host...

What undergraduate computer science course best prepares programmers for the workplace?

The idea here is to get better programmers right out of college. I think I would have to go with Algorithms, it's not exactly something you can pick up on your own very easily and I think it enables you to look at efficiency and correctness of software on a deeper level. I also believe that teaching actual programming can be helpful, b...

Your criteria in using a new technology or programming language

What are your criteria or things that you consider when you are an early adopter of a programming language or technology? Two of the most common explanations I've heard are: It should be "fun" (what I've heard from technical people). It should be capable of solving our problem (what I've heard from business people). So what's yours?...

How to ask programming questions "correctly"

I would like to know what is your style when you want to get quality answers from experts. Normally, my stumbling blocks are the following: My co-workers are either being sarcastic in giving their answers and their body language and vibe shows that the answer is pretty obvious or trivial to them. (This happens when I ask for their opi...

"Proper" way to give clients or managers a reality check on software estimates

Looking back at my past projects I often encounter this one: A client or a manager presents a task to me and asks for an estimate. I give an estimate say 24 hours. They also ask a business analyst and from what I've heard their experience is mostly non-technical. They give an estimate say 16 hours. In the end, they would consider th...

Handling client or manager who is always unappreciative and always blames

I'm doing an analysis of one of my previous projects. This one is really painful. I've worked in a software house. During my stay, we were ranked #1 out of 5-7 competitors. Although it may sound good at first, a meeting with the client shows that we are not up to their "standards" and want to raise the bar even higher (yes, and we we...

Maintaining code that is close to software rot

Let's say you're the lucky programmer who inherited a code that is close to software rot. Software rot as defined in Pragmatic Programmer is code that is too ugly (in this case, unrefactored code) it is compared to a broken window that no one wants to fix it and in turn can damage a house and can cause criminals to thrive in that city....

How to convince team other parts of software development are important?

Sometimes, when I present a part of the software development process to certain people, say the supervisor or the manager that they don't have experience say Automated unit tests and integration tests vs. their manual functional testing. Using code generators, and scripts for repetitive tasks. I sometimes met with resistance. Some o...

Consequences of doing "good enough" software

Does doing "good enough" software take anything from you being a programmer? Here are my thoughts on this: Well Joel Spolsky from JoelOnSoftware says that programmers gets bored because they do "good enough" (software that satisfies the requirements even though they are not that optimized). I agree, because people like to do things th...

Python and Intellisense

Ok newbee question: Is there an equivalent to 'intellisense' for Python? Perhaps i shouldn't admit it but I find having intellisense really speeds up the 'discovery phase' of learning a new language. For instance switching from VB.net to C# was a breeze due to snippets and intellisense helping me along. ...

books that guide you to knowing the underlying system better

I'm an undergraduate on CS for one year,have learned some programming languages, C, python, etc. I know a bit of TCP/IP protocol stack, and have been using linux for half a year. What disappoints me is that after these studies,I still have little idea about how the computer system really works? I think that OS and computer architecture ...

How did you learn to be a programming guru?

College courses are obviously very helpful, but I hear all the time about great programmers that just "taught themselves," and I wonder how the hell they did it. Online tutorials are nice - online support, even better - but learning with nothing but online resources is difficult to say the least, and I don't know anybody that's experienc...

Learning parser in python

I recall I have read about a parser which you just have to feed some sample lines, for it to know how to parse some text. It just determines the difference between two lines to know what the variable parts are. I thought it was written in python, but i'm not sure. Does anyone know what library that was? ...

Why create a new programming language?

What is the real benefit of creating a new programming language? It is highly unlikely that you are going to actually use it. In short, how will the process of creating a new language make you a better programmer? ...