59 votes
Accepted

Learning fundamental differences between functional programming and Object Oriented Programming

There are beautiful answers to this question already here, and I will not try to reiterate any of the ground that has already been covered. However, something important that I have not seen here so ...
user avatar
  • 31.5k
51 votes

How do I teach git to a teenager

I highly recommend this tutorial: http://learngitbranching.js.org/ It uses a visual representation of the internal state combined with actual commands in a sandbox environment along with a step by ...
user avatar
36 votes

What does a person with an undergraduate degree in CS still need to learn to be employable as a developer?

To know that you know nothing. Recent graduates can be afflicted by arrogance or low self worth. These are two sides of the same problem. It is important to know that you are at the beginning of a ...
user avatar
31 votes

What does a person with an undergraduate degree in CS still need to learn to be employable as a developer?

I suspect that the lions share of new CS grads seek jobs in what is actually software engineering, a related but different field. Things I see missing when I interview these people: An ability to ...
user avatar
  • 377
28 votes

How can I get through very long and very dry, but also very useful technical documents when learning a new tool?

Man, I'm right there with you. I understand completely your situation, as I've been there myself many times. The key, I find, is not reading the tutorials. Instead, I pick a few projects - starting ...
user avatar
  • 4,684
24 votes

How does one become great at computer science mathematics?

What makes you think that "almost everyone" knows things like elliptic curves (your 3rd link)? That is pretty advanced math. In fact, it was developed by mathematicians who may not have been ...
user avatar
19 votes

How does one become great at computer science mathematics?

Computer science emerged out of a branch of mathematics, and many of the sub-branches of modern computer science also emerged from branches of mathematics. That means that there are deep, pervasive ...
user avatar
  • 31.5k
18 votes

How do I teach git to a teenager

First, realize that you can't learn everything about Git all at once. Learn the basics to get you going. Learn the other commands as needed. Practice a lot. Git is awesome. I suggest that you learn ...
user avatar
  • 1,044
18 votes

Attempting to prevent learning of poor techniques when self-teaching

I think there are two phases here: the first is just being aware of what the correct idioms and best practices are, and second is attempting to apply what you learned and getting feedback. For the ...
user avatar
  • 3,995
16 votes

Learning fundamental differences between functional programming and Object Oriented Programming

Here I will discuss Functional Programming (FP) and Object Oriented Programming (OOP) in a fairly pure form. Actual languages, however often make compromises to allow older forms as well as multi-...
user avatar
  • 34.9k
16 votes
Accepted

What does a person with an undergraduate degree in CS still need to learn to be employable as a developer?

Firstly, I think CS degrees vary widely in how "theoretical" they are. Some try to teach you about programming languages and even vendor-specific products that you are likely to encounter in the real ...
user avatar
16 votes

Is there a better way to validate student learning?

You seem to already realize that this is a subtle question. When I taught Mathematics early in my career, I also forbade students to work together. Later on, teaching Computer Science, I found myself ...
user avatar
  • 34.9k
15 votes

How do I teach git to a teenager

If you already use an IDE, this could be the right way for you: Git support in your IDE Many IDEs come bundled with Git support. Eclipse, for example, uses EGit for Git integration. The JetBrains ...
user avatar
  • 961
14 votes

What does a person with an undergraduate degree in CS still need to learn to be employable as a developer?

I once had the opportunity to sit down with a very high level Google engineer (who is also an alum of the institution at which I now teach.) I gave him an overview of our program, and then, since I ...
user avatar
  • 31.5k
14 votes
Accepted

Is the CS50x course enough to get the generic knowledge of a CS grad?

No, not by a long shot, although Harvard's CS50x is an excellent introduction which provides around 10 hours of lectures then problem sets which support approximately 100 hours of practice at ...
user avatar
13 votes

How do I teach git to a teenager

1) Use the built-in Git GUI Git actually includes a built-in user interface known as git-gui which is great for novices learning Git for the first time. It's fairly simple to use, comes standard with ...
user avatar
11 votes

For a beginner, is it better to start with C or a higher level language?

Based on your history and preferences, you have a particular view about what it means to be a programmer. I have somewhat the same history, but come to a different conclusion. Start with a high level ...
user avatar
  • 34.9k
11 votes

How can I get through very long and very dry, but also very useful technical documents when learning a new tool?

I've found that a useful trick is to have a specific project or end goal in mind. That helps to focus your attention on completing that project or goal, and gives you a purpose to think about what you'...
user avatar
  • 4,754
10 votes
Accepted

"Franklin" Method for learning good programming?

I have thought it strange that we teach students to write programs before we teach them to read them. A short time ago I read about some research about this. It stated that the problem is finding ...
user avatar
10 votes

Advice for becoming more confident in programming

I think you are probably asking the wrong question. You aren't going to become a good programmer in a week. Or a month. Maybe not in a year unless it is well structured. My advice is to figure out ...
user avatar
  • 34.9k
9 votes

Learning fundamental differences between functional programming and Object Oriented Programming

FP and OOP are both tools in the box, none of them is better or worse. The same way you would not ask whether to use a hammer or a screwdriver to put in a nail, you should not ask whether to use FP or ...
user avatar
  • 290
9 votes

Learning fundamental differences between functional programming and Object Oriented Programming

I wouldn’t expect to find a comparison table because OOP and FP are not mutually exclusive concepts. OOP is about encapsulating data in objects behind interfaces and using inheritance to build ...
user avatar
9 votes

Learning fundamental differences between functional programming and Object Oriented Programming

There are already several good answers, but I'd like to add the following. Functional code is (at least in theory) more easily parallellized. This is important because we've about hit the limit of ...
user avatar
  • 221
9 votes
Accepted

Is it possible to study too many things in parallel?

Actually, what you want to do is commendable. And no, at the scale of things you talk about, I don't think you are likely to get yourself confused. In fact, you may have the opportunity to learn ...
user avatar
  • 34.9k
9 votes
Accepted

How can I get through very long and very dry, but also very useful technical documents when learning a new tool?

As someone who has read through the OpenGL and Vulkan specifications, I've always found that it's best to digest them in bite-sized chunks. Never try to binge on the whole document in one day. Indeed, ...
user avatar
9 votes

How can programming skills be improved?

The only way to learn a lot of things, maybe most things, is practice and feedback. In a standard course (not online), the professor assigns some work to do - homework, projects, .... The professor ...
user avatar
  • 34.9k
9 votes

Which C++ libraries and frameworks should I learn for GUI development?

I think it depends on the domain that you are using C++ for. There are a lot of libraries that you can learn how to use and then never use them in your life, but when you know exactly what you need ...
user avatar
  • 211
9 votes

How does one become great at computer science mathematics?

What you have discovered is that there is a vast difference between math and CS. Each of those fields can in some ways apply the other for some things but the thinking process is quite different. The ...
user avatar
  • 34.9k
8 votes

How do I teach git to a teenager

It probably won't fit particulary good for you, as you want the same GUI on every platform, but I want to suggest GitHub Desktop for future readers, who don't have the platform requirement. GitHub ...
user avatar
  • 961

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