12 Jun, 2009, flumpy wrote in the 41st comment:
Votes: 0
Silenus said:
Anyow I am not sure how this relates to my clarification on goals that flumpy requested post since I think it narrows down to some degree what my aims are and from that I am essentially asking which details are important to know and which are not.


Importance is entirely subjective to your goals. Once you know what those are, then you can decide what is important.

To me, and correct me if I am wrong, your goals are very hobby-oriented. If this is true, then it does not matter what you do, as long as you enjoy it. You will soon find out what you like and what you do not, which may be different to what you are good at. Any course you can possibly take will be flexible enough to choose what you want to read, and if it is not, drop out and choose another.

Even choosing the wrong thing is learning.

"There are two mistakes one can make along the road to truth…not going all the way, and not starting." - Budda
12 Jun, 2009, Silenus wrote in the 42nd comment:
Votes: 0
Quote
If you are complaining strictly about what's available in university courses, well then the only thing I can suggest is grab the architecture guide, the operating system guide, an assembler and start writing code.


I guess this is basically what I am doing. Rereading through alot of materials because I feel I dont know them well enough. I guess this isnt so much a complaint as a critique. In some cases I feel that alot of (language) courses have moved away from low level considerations and it might be beneficial to put them back in.

Quote
Importance is entirely subjective to your goals. Once you know what those are, then you can decide what is important.

To me, and correct me if I am wrong, your goals are very hobby-oriented. If this is true, then it does not matter what you do, as long as you enjoy it. You will soon find out what you like and what you do not, which may be different to what you are good at. Any course you can possibly take will be flexible enough to choose what you want to read, and if it is not, drop out and choose another.


Well I am actually trying to some extent assess the competence factor as well. Which is why I am curious which topics I would need to know and determine if I am being realistic or not. Starting to learn things at my age is perhaps quite difficult and in a work situation I guess you will be competing against better prepared candidates who have a wealth of experience and preparation I may not have.
12 Jun, 2009, David Haley wrote in the 43rd comment:
Votes: 0
Silenus said:
I guess this isnt so much a complaint as a critique. In some cases I feel that alot of (language) courses have moved away from low level considerations and it might be beneficial to put them back in.

But that's because most language courses are about languages, not the low-level machine details. I would argue strongly that this is exactly as it should be. I think that we have reached, or at the very least are starting to reach, the point where there's just too much to cover in a single course, and to cover it all would be to cover it all poorly.

Silenus said:
Well I am actually trying to some extent assess the competence factor as well. Which is why I am curious which topics I would need to know and determine if I am being realistic or not

Well, I think actually this question has been answered several times already. :wink: As for the goals, well, I didn't really comment on the list in #33 you gave because while it does list specific tasks, it doesn't really narrow things down much.

Silenus said:
Starting to learn things at my age is perhaps quite difficult and in a work situation I guess you will be competing against better prepared candidates who have a wealth of experience and preparation I may not have.

Meh, I wouldn't think of this as a problem at all. I think you're stopping yourself before you even start, with statements like the above and, frankly, this whole thread. Just go forth and start doing stuff, understanding will come in time. Since you want a very broad range of topics, I'm not sure there's a particularly good place to start; you know the list of things you need to learn about already. I think that if somebody knew of a guide or book that condensed all of this stuff, they'd have mentioned it. But I think the reality is that no such guide exists, and you simply have to pick up the pieces separately and eventually put them together in your head.
12 Jun, 2009, Runter wrote in the 44th comment:
Votes: 0
David Haley said:
Silenus said:
I guess this isnt so much a complaint as a critique. In some cases I feel that alot of (language) courses have moved away from low level considerations and it might be beneficial to put them back in.

But that's because most language courses are about languages, not the low-level machine details. I would argue strongly that this is exactly as it should be. I think that we have reached, or at the very least are starting to reach, the point where there's just too much to cover in a single course, and to cover it all would be to cover it all poorly.


Agreed. Additionally, ones emphasis on the importance of low level architecture is reflective of their goals as a programmer.
12 Jun, 2009, Silenus wrote in the 45th comment:
Votes: 0
Quote
Agreed. Additionally, ones emphasis on the importance of low level architecture is reflective of their goals as a programmer.


Ok I guess I can understand that and accept that argument.

Quote
Meh, I wouldn't think of this as a problem at all. I think you're stopping yourself before you even start, with statements like the above and, frankly, this whole thread. Just go forth and start doing stuff, understanding will come in time. Since you want a very broad range of topics, I'm not sure there's a particularly good place to start; you know the list of things you need to learn about already. I think that if somebody knew of a guide or book that condensed all of this stuff, they'd have mentioned it. But I think the reality is that no such guide exists, and you simply have to pick up the pieces separately and eventually put them together in your head.


Alright. I guess I will just continue with my mix of hacking small bits of code mixed in with reading though perhaps I should put more emphasis on the hacking. Thanks.
12 Jun, 2009, elanthis wrote in the 46th comment:
Votes: 0
Quote
Agreed. Additionally, ones emphasis on the importance of low level architecture is reflective of their goals as a programmer.


True. One can be a very competent professional driver without being capable of performing complex maintenence on a car. However, there's a vital corollary to your statement: one's choice of language is reflective of their goals as a programmer.

I will strongly maintain that if you are using C++, you MUST learn the low level details and – from experience in teaching environments – that you're better off learning C first and learning the C++ time-savers second (something I haven't said yet in this thread that might explain the opposition to that assertion: I strongly believe that you should learn some other higher level language before C, so you have that CS background knowledge first). If you want to code without that knowledge, DO NOT USE C++. Use a language that doesn't expect you manually manage memory, invoke system calls, make use of low-level implementation details like C strings, use pointer arithmetic, deal with integer overflow, etc.

Yes, you can write C++ code without knowing those details. What is going to happen, however, is that you will eventually do something wrong, and then you will have to deal with the consequences of accessing a dangling pointer in a method in a totally different file and invoked seconds or minutes after the pointer was made invalid, and you're not going to have a clue how to debug any of this because you don't understand what the hell is going on. Or you're going to have to use a pure C API (the ability to do that is one of the strongest reasons to even use C++ these days, because a lot of very useful libraries only have up to date C bindings). Or you're going to have to maintain someone else's C/C++ code that pulls off various (probably unnecessary and poorly written) low-level tricks. C++ is specifically designed to just be a set of extensions to C, which is explicitly designed to just be an easier-to-use system-neutral assembler, which is specifically designed to deal with low-level details of how computer software actually works and not just with the theoretical math behind computer science algorithms.

If you don't want to have to learn those low-level details, go use Python or LISP or Ruby or C# or whatever. Don't torture yourself by trying to use a tool as if it were something else just because you can pull it off with some luck.

Quote
Alright. I guess I will just continue with my mix of hacking small bits of code mixed in with reading though perhaps I should put more emphasis on the hacking. Thanks.


Definitely more emphasis on hacking. You can't learn without doing. But remember that just reading isn't enough either; you need to be able to bounce ideas off of people. Which is what sites like this are great for, of course. :) True learning is a two-way street, so they say.
12 Jun, 2009, David Haley wrote in the 47th comment:
Votes: 0
elanthis said:
I will strongly maintain that if you are using C++, you MUST learn the low level details and – from experience in teaching environments – that you're better off learning C first and learning the C++ time-savers second (something I haven't said yet in this thread that might explain the opposition to that assertion: I strongly believe that you should learn some other higher level language before C, so you have that CS background knowledge first). If you want to code without that knowledge, DO NOT USE C++. Use a language that doesn't expect you manually manage memory, invoke system calls, make use of low-level implementation details like C strings, use pointer arithmetic, deal with integer overflow, etc.

Put this way, and with that explanation that learning something else first is a better idea, I'm much happier with your statement. :smile:
12 Jun, 2009, flumpy wrote in the 48th comment:
Votes: 0
Silenus said:
.

Quote
AFAICR a phd course is about 5 years? How old are you if you dont mind me asking?


Oh I am in my mid 30's now- so I am guessing I will likely be over 40 upon completion and then have to do a year of postdoc work. I was talking to someone recently who felt I was reasonably qualified to do this (he was hunting for a phd student). I pointed out there were significant gaps in my understanding but he felt given what I did know I could probably learn the rest on my own perhaps with a bit of help.


well god help us all if you think mid-thirties is too late to start a course on something! I knew mature students who were twice your age when I was studying my degree*.

To be honest I think the age thing is a bit of an excuse.

I myself would love to do a masters and then a PHD but I have three kids, and I am the major contributor to the family finances. If I start studying now, my family would suffer. However I am 33 (on sunday actually) and would consider doing this when the kids have left when I'm in my 50's, so I really don't see what your issues are in this area. Can you explain? I cant see it really being age tbh.

What I think is that you are worried about the changes that you need to make in order to do the things you want to do, rather than doing what you need to do to get by in life. If this is about your career, (which you have not mentioned), then it seems like you have some hard decisions to make. Remember that no path you go down is ever guaranteed to be safe. Your current employer could make you redundant tomorrow, and although unlikely, it is in his hands.

If you are doing a phd to put the control back into your hands about this kind of decision, its probably the wrong one. Start working for yourself instead. BUT, if you want to learn, go and do it. It's entirely up to you don't let us put you off.

[edit]

I am considering working well into my 70's and 80's to be honest. Even if its for myself. I cannot think about NOT doing work of some sort, and having a masters and a phd would be a nice to do first.


*well, maybe not 'twice', but heck, early 60's at least
12 Jun, 2009, elanthis wrote in the 49th comment:
Votes: 0
13 Jun, 2009, Silenus wrote in the 50th comment:
Votes: 0
Quote
To be honest I think the age thing is a bit of an excuse.


Well several people have said this to me. I am not sure how true it is and it might partly depend on which country you live in. I think the US tends to be more flexible when it comes to employment and career changes etc. But it could be an excuse I really dont know. One person I spoke with in fact said maybe I should move to the US since it may be more flexible. I am actually hoping it isnt true.
13 Jun, 2009, Runter wrote in the 51st comment:
Votes: 0
Silenus said:
Quote
To be honest I think the age thing is a bit of an excuse.


Well several people have said this to me. I am not sure how true it is and it might partly depend on which country you live in. I think the US tends to be more flexible when it comes to employment and career changes etc. But it could be an excuse I really dont know. One person I spoke with in fact said maybe I should move to the US since it may be more flexible. I am actually hoping it isnt true.


Where are you from?
13 Jun, 2009, David Haley wrote in the 52nd comment:
Votes: 0
It depends on what you're trying to do, really. My parents got PhDs at ages 56 and 57. I don't think age is an impediment to learning. As for jobs, well, again it depends on what you're trying to do. In general the US is more flexible than most of Europe – it is more based on competence and experience than on degrees or "pedigree" (not in the sense of aristocracy, but in the sense of what school(s) you're from). That's not to say that things are hopeless in Europe, far from it; again it all just depends.
13 Jun, 2009, Silenus wrote in the 53rd comment:
Votes: 0
Quote
Where are you from?


I currently reside in Hong Kong.
13 Jun, 2009, Runter wrote in the 54th comment:
Votes: 0
elanthis said:
Quote
Agreed. Additionally, ones emphasis on the importance of low level architecture is reflective of their goals as a programmer.


True. One can be a very competent professional driver without being capable of performing complex maintenence on a car. However, there's a vital corollary to your statement: one's choice of language is reflective of their goals as a programmer.


I agree with that. I think that most people know (or should know) that languages are tools and you use tools fit for jobs.

So if the argument is they should only use C when the need to deal with low level architecture. Otherwise they should use something else.

Unfortunately the disparity between C++ and some higher level languages performance makes it still the tool (car) of choice for many projects (without needing to be able to preform complex maintenance on a car).
So I think that's where the argument doesn't exactly ring true in every case.
40.0/54