36

I understand the book is written to describe C languages in general. The book is written to teach you ANSI C, not 'C languages in general' Does the book expect me to be able to translate the first program ... to a C# or C++ program? No, those are different languages, and the book does not expect you to do anything with those languages. The examples are ...


16

If we're talking about, say, top 10 ranked US colleges and universities (other countries will likely have different traditions and people will have wildly different definitions of a "countryside college or university"), no. A community college will generally choose what languages to teach based on what languages employers in the geographic area served by ...


11

I think you need a proper project: Find a problem to be solved, and solve it. Doing something real (rather than hacking examples) will drill into your head all kinds of lessons: things that you have been taught that are good, things that don't work so well. The biggest difficulty in a real project is not so much writing code, its knowing what code to write....


7

There are a couple ways I get ideas for things to work on. As you go through your normal life, think of useful programs that might be nice to have and then make a note of the idea. That way, when you have a need to learn a new technology, you can look at this list rather than trying to come up with an idea from a blank slate. Here are the ways I do it. ...


5

Reading other peoples code all the time is a sure shot way of improving your skills on the project. No doubt about it. It also helps to be the dumbest guy in the team - by that I mean to say that if all the other programmers in the team are way above you in terms of programming skills it will automatically lift your level too - as long as you have the ...


5

All of us are short on time, but somehow manage to find it for our pet projects. The reason? There is usually a problem that needs solving or a cool tool/feature we want that is not readily available elsewhere. Without this spark of inspiration, you're going to find it that much harder to get going. If I were in your shoes, I'd maybe find a piece of ...


5

I think you're confusing computer science with software engineering. Computer science is more concerned with theories, algorithms, data structures and proofs. Software engineering is the discipline that studies software architecture and construction. A computer science degree program may have software engineering courses, but they're not necessarily part ...


5

Short answer There is no single topic where all of these terms fall under. And no. You probably didn't heard these terms even if you had not skipped any classes. It is quite normal for a student never hearing about them from the mouth of academia. What you are missing out is an internship. (Also known as apprentice, practical training, co-op, etc.) ...


5

Firstly, let me agree that K&R is a great place to start with the C family. It is a really wonderfully written book. Importantly, it is quite concise. Be aware that C++ is much more closely related to C that C#, although C# does borrow heavily from both. Java in fact does the same, and indeed C# followed from Java. You can't learn C# or C++ just using ...


4

I have been developing for .NET for almost 10 years. I still ask questions every single day. I still read every single day. I still question my assumptions and seek out better solutions every single day. Searching out proven solutions is better than working things through and reinventing the wheel. There is already too much of that going on in software ...


4

I believe it is effect of two things: Many programmers are not part of the "community". They don't read blogs, they don't frequent SO, they don't watch talks, etc.. That means they have no exposition to the new techniques and paradigms above what they learned in school. And they don't want to. On the other hand, managers at least want to learn new things. ...


4

If by "recent years" you mean the last 22 then yes, because that's all the experience I have to go by. Focus on managerial/process oriented aspects of software projects has been really high ever since I started in the field. If you mean just the last 4 or 5 then absolutely not.


4

Most "higher-ranked" universities don't focus on particular technologies or languages, because they are teaching concepts of Computer Science. Their primary goal is not to prepare graduates to do enterprise software development. So while their introductory courses might all use the same language for consistency's sake, it's not like they chose it based on ...


4

I think the most important aspect of learning is failure. When you attempt to adapt example code or implement something new and it doesn't work, you have to figure out why it doesn't work. This is when your brain will be put to work attempting to solve the problem you have come across. And when you finally have that 'aha!' moment, what you have learned ...


3

Le me share my opinion, some words of wisdom and some questions for you to reflect upon. Being an experienced programmer I have found over the years that best code is the one that is simple (look at KISS concept)and easier to be modified by another programmer. Also, leaving adequate space for the code not to be congested (breathing space) and evenly ...


3

As far as becoming a better programmers is concerned there is no magic bullet. If you're self-taught the key is self-awareness, which it sounds like you have. However, learning to code well mostly comes down to reading and practice. Being critical of your own code is one of the best ways to get better. Always be asking yourself: Will this be easy to change?...


3

I really think not. Like many programmers of my generation, I learned using BASIC as a child, and I still think it has tremendous advantages over other more "modern" languages for those who are just starting to learn. I think it may depend upon existing exposure and age (and what do you mean by the first thing they learn - kids as old as 2 or 3 are playing ...


3

It is part of a general awakening (or maturing) of software engineering. You can read about this maturing process in No Silver Bullet. Although written several decades ago, its observations still hold true today. At different times in history, various programming paradigms, techniques, methodologies, or management styles were hailed as the "silver bullet" ...


2

I think you got the definition of a help vampire wrong. A help vampire make people work for them. Reading a solution online does not consume anyone's time. It is just a way to use an available resource. Knowing when to ask a team member for basic help when no documentation is available is something harder to balance. When working on something you don't ...


2

What you described as "reuse and integration" is mostly embodied in a practical way using the concept of modularity. Modularity takes a number of forms. In some languages there are actually modules, and in many others there are concepts of modularity that take the form of individual files, namespaces and other similar organizational mechanisms. Object-...


2

I guess both are useful, but your coding on your own will be better.. Other's code will help, you will get to learn some things you couldn't have thought of but at that transition, it's how you think that matters. It would be better if you take a few problems and solve them. Use other People's help when there are any problems that you can't get around. ...


1

Most colleges that I know of teach Java as the introductory language. Talking to one of my professors about how our department chose that language (and why it can't be replaced by something else), he said: Java is portable. Write once, run everywhere. It's strongly-typed It's a managed language (most first-year CS students get very confused with pointers) ...


1

Absolute majority of programming work is done in a team and involves code base that already exists for some time and needs to be continuously adjusted for new requirements and features. You won't ever learn that from text book, you have to try it. Working with other people's code is also great way to get experience how various idioms work in practice. You ...


1

I'm in a similar situation as you, been hired as the sole programmer for a 5 person company, and only one of them is directly involved with the applications I am developing/adding to. Luckily, I did not have to create anything from scratch but up until now only modified applications my predecessor built. In doing so, I believe I have already improved myself ...


1

Here is a list of the most famous online academic level learning portals (check computer science category) : edx udacity Coursera please note that courses there are thought by top world universities like MIT,Stanford,... and you can have a certificate for passing courses after entering real mid-term, final exams and for sure submit homeworks ;) it might ...


1

To answer the question more directly, having an MSc is better than not having one. Speaking as someone who hires technical staff, if you take 2 very similar candidates, but the only difference is that one has an MSc, pending their performance in an interview, the MSc person will get the job. Also, on a related note, doing a degree (at least a recognised ...


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