Tag Info

Hot answers tagged

534

Best way to learn to program is to write programs. Two suggestions : develop a game develop a web site Algorithms, while useful, and should be understood, actually play second fiddle to software design. TDD / Design Patterns / Architecture / Refactoring / Unit Testing / The process of putting code together / etc tend to be far more important skills. ...


388

I felt like I was mostly gluing together libraries that other people had written While I understand why you feel like this wasn't "real programming", the truth is that integration work makes up a significant percentage of the typical workload for a corporate programmer. Your experience might be a little more valuable than you think :)


240

First, thank you for an immensely honest question. There are a number of ways to tackle the issues at hand. Here are a few tips, which I considered very helpful for me in the past and still continue to use them to broaden my knowledge. Learn, Learn and Learn some more. This is probably the single most important tip I can give you. ...


125

I did the same thing for my daughter's 1st grade class. I brought in an old computer and bunch of parts. I explained what each part does and let them touch them. This was a big hit! They'd never seen a computer's insides let alone been allowed to actually touch them! I asked them some questions to dispel myths about computers: How many think computers are ...


114

This statement applies only to ephemeral technologies, which you should only learn as needed anyway. That said, you're going to learn a lot of them over your career. Fundamental programming principles and techniques are eternal.


106

Start on one of those in-demand languages,using a project as K. Nicholas says. Don't measure yourself by StackOverflow. That will discourage you unnecessarily.


100

Getting a PhD does two things to you and it uses up 4 or more years. You will need to decide whether those two things are worth the time. First, it gives you some initials after your name. For the rest of time, people who see those initials will think "wow, you must be really smart!" (and often, they will say it out loud.) On a resume it will generally help ...


93

Every company and every hiring manager is different. Some will value hands-on experience more than a degree, but many will not look past the lack of a degree, especially in large companies where hiring is done by a HR department. Basically lack of a degree: will be seen neutral to slightly positive in most small startups will matter little when you get a ...


73

A few Universities have somebody who's sufficiently well known that many (if not most) decisions revolve around that person's likes, dislikes, opinions, taste, etc. Just for example, Texas A&M has Bjarne Stroustrup on staff; it probably comes as little surprise to anybody that their curriculum tends to emphasize C++. Most universities are a bit ...


72

I can't help with your job situation, but I hope I can help you develop your skills and also put your feelings about your own skills into perspective. I'm graduating with a Computer Science degree but I don't feel like I know how to program. It's possible that your instructors have something to be ashamed of. It's also possible that your feeling about ...


69

Wait: Chris is the team lead. Chris wants them to do OOP. They don't. Right? IMO there's a management problem to address in the first place. Your target should be Chris, not the other programmers. Tell him that those programmers aren't going to train themselves just by being made fun of. And then you could propose that you teach them. This could bring you ...


67

Nonsense People that say things like that are just trying to be sensationalist, or else they're learning the wrong things.


62

Emphatically No. For any goal you have in mind for students, another language or sequence of languages would be faster and better. Examples. "Students need to understand low-level concepts." "Low-level" coding does not consist of getting objects from new, feeding them back to delete, and occasionally having a pointer pointing somewhere it shouldn't. ...


60

If you want a "math-like" language, Haskell is your best friend (for your best friend). You can easily make new functions without hassle. It is the best language recommendation I can give you for you friend. Here are some links: Try Haskell - An online Haskell compiler and tutorial. Learn You A Haskell For Great Good! - This is how I learned Haskell. How ...


59

You will never, ever, ever, ever, ever, in the entirety of your career, be in a position where you immediately understand every programming technology simply by looking at it. There's just too much there. Its the accumulation of research and knowlege of millions of individuals over many decades. If you ever find yourself thinking you are at that point, ...


59

There was a scene on an old Law & Order in which a DA complains that she learned nothing about how to do her job at law school, that she didn't learn anything about the real world. The professor to whom she's complaining replies, "It's a law school, not a lawyer school." The same applies to computer science. Perhaps you didn't learn how to contribute ...


59

You might find the article Dynamic Linking in Linux and Windows interesting which explains how each OS does dynamic linking. The article Shared Library Search Paths explains how the libraries are found. Also Static, Shared Dynamic and Loadable Linux Libraries is very good. A nice thing about Linux libraries is that they have better support for versioning and ...


56

No. The reason it seems like quite a few self-taught programmers "make it big without a degree" is the same as the reason why it seems like all people who make it to 120 lived on cigarettes and bacon and drank a bottle of whiskey every day: exceptions draw a lot of attention. Good self-taught/self-made programmers are actually quite rare. I've inherited ...


55

No, C++ is a difficult language even for experienced C++ developers. Even for the simplest algorithms you have to explain many of the language subtleties. Consider a Hello World example: #include <iostream> int main() { std::cout << "Hello World!" << std::endl; } What's that #include command? What's std::cout. Why the ::? What is ...


55

Change Employers The most efficient way is to learn and do cool stuff and change jobs every year or so. You are far more likely to get more money from a new employer than you are to get a hefty raise from your current employer.


53

Joel Spolsky (yeah, that Joel) argued a while back that real tough programmers know how to use harder languages (like C, C++ and Lisp) and their constructs (like pointers and functional features), and that higher-level languages were usually not 'hard' enough to demonstrate your competency. I can understand his point that people knowing C and C++ and that ...


53

Here's the secret about programming: it is almost 100% communication. A significant part of that is communicating with a human; the rest is communicating what you've just learned to a computer. The latter part is the easier of the two. Computers do exactly what they're told and you are always in a position to test that what you told it is correct. The ...


51

I'd personally go with C++ as it will give you insights into how parts of Java work under the hood (Pointers for example). Moving to Java from C++ is fairly trivial, whereas moving the other way around is arguably more difficult. The truly difficult thing about the Java eco-system is it's vast number of frameworks, libraries etc - they're unlikely to cover ...


48

I call it the "Freshman Feeling". When it seems like everyone else has it together, is going faster, knows all of the buildings on campus, isn't struggling, etc. In programming, I'm disoriented, uncomfortable, unsure whether or not I'll meet the deadline - it's fear. The feeling goes away when I acknowledge the fear for what it is, then ignore it, dive in ...


48

I am guessing from your user name that you are a woman... If not, feel free to ignore this, or adapt it to your own point of view. In my experience, women graduating from college in computer science consider themselves much less competent than their male counterparts with similar skills. One might say that women are (or, to be exact, women I know are) ...


46

To tell you about my background, I went to a small, private liberal arts school and work at Google. So it's possible to land a good job without going too far into debt. But if I could make my college decision again, I would have gone with a big-name tech school. Big name schools offer attention It is difficult to land a good internship at Microsoft or ...


45

I personally find it somewhat sad that functional languages aren't taught as predominantly as they used to be. I think that at the very least comp sci students should be exposed to a language from all of the major paradigms: procedural, object-oriented, functional, and dynamic.



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