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 ...


21

You are on the right track to improve your skills, and it's understandable that you are uncertain about the reliability and enterprise-readiness of your code. This is a normal process to go through for a junior developer, and your interest to improve is very important, as it is a key to one day becoming a rock-star developer. As a reference to learn best ...


20

Keep in mind that I don't have time to read several 1000-page tomes about abstract programming. So are you asking for someone to give you a five step check list that will make you a skilled programmer? That's not going to happen! As with any other discipline, if you want to get good at programming you have to spend time and effort practicing and studying....


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....


9

As you gain more experience you can certainly go back and review your previous projects/code to see where you went wrong. Hindsight is a beautiful thing. I know for a fact I've looked at code/documentation I wrote x ago and realised where I went wrong and where I could have improved. The fact you read blogs, books, SE, etc. should be giving you greater ...


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. ...


6

Maintenance means different things to different people, and comes about for different reasons. Worst case, the initial system was thrown together in a hurry, the initial team took credit for the whole thing. They followed the 80/20 rule, so while there might be a minimum viable product that can be sold, lots of customers need lots of fixes and small ...


5

During my studies, we used C and VHDL, but C was by far the more prominent language used. And the advantage of learning C is of course obvious even beyond hardware programming. So that's what I recommend. When you learn C very well, it should give you no trouble to learn Java and C++ later on - it's just about learning the OOP aspects of both, mostly. After ...


5

Using an old language sounds all rosy; sometimes we almost have a nostalgic appreciation for languages we used earlier in our lives. Like a house we lived in when we were young. This is my analogy and answer. The things that caused me to move out of my parents house when I was 18 aren't easily remembered. But if I moved back in, the rosy appreciation ...


5

Consider your end result - an online game, written in JavaScript. As such, by all means, take inspiration from your old codebase and plan ahead. The way I would approach this would be to figure out what refactoring I would do and use both the old codebase and the refactoring plan as a blueprint for a new codebase using JavaScript. My point is that if you ...


5

No Royal Road to Software In ancient times, Euclid was asked a questions like yours by his student King Ptolemy. His response: "There is no royal road to geometry." You mention that your supervisor would laugh if he knew how much time you spend trying to write code like a professional developer. Others answered your questions with a laundry list of ...


5

Why do you want to become a manager? If you just want to be a manager and move into any management position as fast as possible, it is hard to go past a Master of Business Administration (MBA). Learn about finance, budgeting and lots of things that this stack exchange site won't be able to help you with. If you want to become a manager because you like ...


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

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 ...


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.) ...


4

How do I assess if my work is also good from a programmer's perspective? Is it correct? Does it produce correct results in all cases? Are other people able to read and easily understand your code? When your supervisor says "Great, now make it also do X..." do you have to rewrite a lot of code? When you've written a program, does it become a tool that you ...


4

You will be able to go a long way in Physics without knowing anything about "professional" style (speaking from experience). But I have seen many people waste endless time because they lost track of what they where doing or after having grown their code for a couple of years just got lost in it's complexity (even in academia there is no "throw away" code, ...


4

I have bad news for you: a lot of the applications humanity needs are already written, it's just that they should be fine-tuned to the constantly changing environment. Some day, you'll be asked to write a new part of the system, like, a new module, and you can leverage your knowledge on green field development. Until then, you can try to learn refactoring ...


4

I actually think you have a good set of questions to ask. These are the other things I would consider: What published materials are included with the course. Most classes come with custom course notes, but some include published material. For example, a class I took on business analysis once included books by guys like Karl Weigers and Alistair Cockburn. I ...


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 ...


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 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

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

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. ...


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