3,984 reputation
12330
bio website
location
age 28
visits member for 4 years, 2 months
seen May 5 at 0:43

the cows are here to take me home now...


Jan
16
awarded  Nice Answer
Jan
16
answered Word for red flags / warning signs?
Jan
15
comment C++ for C# Developers
@Cody MFC is great if you need to work with Win32 for whatever reason -- but it's completely outdated in academia, because coding against Win32 API directly is an outdated notion, or at least a very esoteric one. There is no academic value to MFC as there was in the past, because concepts of UI programming can be taught much more clearly and generally with other APIs.
Jan
15
comment C++ for C# Developers
You will see C code used in C++ whether you write C or not yourself, and consequentially, if you're learning C++, you need to learn C. As I've said, I don't condone it, but the fact of the matter is that schools generally teach C and then tack on C++ later, because students need to be taught things like OS design -- which, excluding BeOS and certain research OSes, absolutely require C. For that, you do need to understand C strings. Again, for the third time, if I had my way, I would not teach C++ at all to first year students, and for the last time, that's completely besides the point.
Jan
15
comment Does an unexperienced programmer need an IDE?
@Winston Yes, they do. There's no way not to notice that something happens to bring together dozens of code files and libraries. Learning the exact format of the data that describes the interactions is useful, but again, it's something that can be learned in a few hours once it's already understood that something is indeed happening. Have you ever tried teaching linked lists without explaining what they're good for? Linked lists make a lot more sense to people once they have a reason to need to know the details of it. Same deal with makefiles and compiler parameters and all that.
Jan
15
comment Does an unexperienced programmer need an IDE?
Well, I mean, Makefiles are pretty trivial later on once you understand that building programs usually involves several steps and a lot of files -- which IDEs will teach you along the way anyway.
Jan
15
comment Does an unexperienced programmer need an IDE?
How would not using an IDE give you a better understanding of how everything works? You'd be missing out on compiler command line options and debugger commands, but those are both things that you can learn later on in a one-page explanation. Makefiles aren't all that much harder either. I can't quite think of anything else that isn't trivial.
Jan
13
comment Is it a really required skill to program without API documentation?
@Goran That's the thing though, I don't remember the exact syntax for list comprehensions in Haskell either. I can easily figure it out from the usage and the general look of [ x | x..x ]. I've taken a course on it, and fortunately my instructor was sensible enough not to test us on anything syntax-related on the exams. He gave us a list of the higher-order functions, and as far as I can tell, never was very particular about correct syntax. As a result, while I don't use Haskell for my daily work, I have no trouble understanding it when I read it in academic papers -- and it's great.
Jan
12
comment Is it a really required skill to program without API documentation?
@Goran Actually I don't necessarily, for two reasons: 1. background compiling tells me when I get the syntax wrong, and 2. loops are secondary (almost non-existent) in languages like Haskell and ML. Languages are more diverse than you might think. Even though I spend most of my time coding in F# and only vaguely remember Haskell, I can still understand Haskell code just fine, remembering to take note of the semantic differences. On the other hand I agree that learning a first language inside-out is extremely important and way-too-often neglected.
Jan
12
comment Is it a really required skill to program without API documentation?
I don't think it's worth memorizing syntax either. Features and patterns and gotchas, yes, but syntax, no. I work with too many languages for it to be meaningful, and I think that's becoming true of most developers as well.
Jan
12
comment Is it a really required skill to program without API documentation?
I don't think his question is whether or not you should eventually know the documentation, but whether or not you should memorize documentation as if for exams.
Jan
12
answered Is it a really required skill to program without API documentation?
Jan
7
comment Process of developing software?
I'd tell you what I learned at university, but our final exam consisted of regurgitating the 30 step workflow in correct order using the exact jargon and phrasing, and needless to say, I don't remember any of it. I don't recall that we'd ever learned a name for the workflow either, because my prof was so bigoted that she thought it was the way to develop applications, not a way, and thus that it required no distinction from other methodologies.
Jan
6
comment Why is there such limited support for Design by Contract in most modern programming languages?
@Dan code contracts significantly reduce the number of tests you need to do.
Jan
5
comment C++ for C# Developers
@DeadMG You're still missing my point. At risk of talking in circles, my point is that my prof didn't understand how char[] works, and that he was a complete idiot for it. I know my school is hilariously outdated. Despite claiming to be among the most prestigious CS schools in Canada, they still teach MFC. That's totally besides the point. Again, I never said anything about the quality of the curriculum, because I don't even want to get started about it. To say "there's no such thing as teaching char[] correctly" is just jumping the gun to mash two issues together and disregard both.
Jan
5
comment Overcome clumsiness in writing code
@junxiong It is, but TDD tests have a very specific purpose -- namely, as a strict (and I would argue overkill) way of encouraging good design. Unit tests written for the purpose of good TDD won't be as effective in catching bugs as unit tests written specifically to catch bugs, and TDD tests written as if they were to catch bugs can often lead to the same kinds of bad designs that TDD strives to avoid in the first place. In other words, whichever you do, you should be mindful of the purpose of your tests.
Jan
5
comment C++ for C# Developers
@DeadMG I never questioned or approved of the curriculum with regards to when or if char[] should be taught (if I were to go that far, I'd first question why C++ is being taught to first years at all -- but that's another story). My point is that if you're teaching char[], you need to teach it right.
Jan
4
comment C++ for C# Developers
@Kyralessa Which is also kind of unfortunate. I think it's not so much a political issue as it is condescension towards the VB.NET demographic -- because most of the C# early adopters have a C/C++ background. My school used VB.NET for beginner courses though. They seem to think that VB.NET is a toy, and so shouldn't be as corrupting to the minds of students as C# is.
Jan
4
comment C++ for C# Developers
@DeadMG I can't quite see your point. Just because char[] is seldom used in C++ doesn't mean it's not taught or that it shouldn't be taught. char[] is still important to be aware of because C++ is a superset of C, and it's imperative that it's understood correctly if it's to be learned at all.
Jan
4
answered Overcome clumsiness in writing code