I am studying for an HND in networking, Cisco stuff and whatever.
I had to admit that 75% of my course is utter, absolute crap. One of my tutors is extremely serious and professional, he's in charge of all technical subjects. All the others are totally useless, the kind of people that never left academia in their lives and survive by "teaching" things with absolutely no professional value. All that they can do is recite inane Powerpoint slides and write useless assignments that can be done with a Google search. I asked to drop some of the useless subjects and to put some useful course instead, everyone at school looked at me like I was an idiot.
Is that normal? Did I end up in a shit school? I resolved to teach myself something useful, but I am still forced to attend classes of NO FUCKING VALUE. Why?
BTW, I spoke with my course mates. Never seen such a bunch of thick, inbred, useless sheep shaggers in my life. They managed to get an HNC in Networking, but they do not even know how to turn on a goddamn router. At least, I will not have to fear their competition in the workfplace!
I did a Comp Sci BSc at a reasonable redbrick uni and it was full of useless crap. Not necessarily easy useless crap - just irrelevant unless that was an area you were going to go into.
>>6380 Out of curiosity, what do you learn in a CS course that a self-taught programmer doesn't tend to learn? I can finagle things in various languages but have no formal education in the subject. The fact that I actually quite like R is probably a good indicator of that...
Networking, not CS. I did a lot of work on Cisco routers and switches. It could be possible to do self study, if you are high IQ with a lot of time and talent, not to mention access to a server room with some expensive equipment. Maybe programming is easier, but I think that network engineering is quite difficult to self study.
By the way, how did you manage to get a job without formal education? AFAIK recruiters won't even look at your CV unless you have a degree.
>>6380 Thanks m8. Another reason to not get a BSC. I will just start working and get some further Cisco certifications by myself.
A mate of mine did comp sci at manc uni and his third year project was building a website with a Java backgound. In 2014.
Three questions I ask BsC holders:
1) what is a stack
2) what is a heap
3) in less than five minutes sum up for me undr what instances you'd use either one and why,
MsC holders on the other hand get a good grilling on their masters thesis, if they can't defend it to Old Stupid over the phone who writes thr cheques and barely ever even writes vmware breakouts anymoe, how else are they going to impress our customers. Siugh
>AFAIK recruiters won't even look at your CV unless you have a degree.
Recruiters are scum. Hiring managers for the kind of companies you want to work for are often very interested in self-taught candidates, because they know just how utterly useless a lot of graduates are.
>>6383 I do electronic engineering and we were taught that in first year. I was amazed at how little CS students seem to do; stuff we did in third year about computer architecture far exceeded what they ever did, and stuff we did in first year is third year for them. I can't really fathom what it is they actually do in CS.
Well, I can give you my current understanding and if I'm wrong about anything I'm happy to be corrected.
They're both sections of RAM set aside for program execution that respectively deal with static and dynamic memory. What this means in practice is that the stack is faster and more procedural as the size of all objects is known at compile time and when moving between them the stack pointer is simply incremented or decremented accordingly as LIFO is systemically applied. The heap, as its name suggests, is larger and less structured so generally slower, although the degree to which this manifests is dependant on the processor architecture. In compensation it is more flexible, not only capable of handling larger objects but also ones whose size isn't constant at compile time. For instance, in C++ one cannot create an array with a variable as a size without having to employ pointer syntax that places the array on the heap.
The heap can also be less secure since in languages without garbage collection - again, C++ would be a prime example of this - improper use can lead to memory leakage if objects aren't manually deleted. For programs that handle sensitive information this would be a security issue. Ideally I'd put as much onto the stack as possible for the sake of performance, particularly any computationally costly algorithms while reserving the heap for objects of uncertain size like user inputs.
If there are any glaring mistakes or gaps in my knowlege please let me know. Also why is it so strange for a webpage to be coded in Java? It sounds odd to me since most websites are a mixture of JS, PHP, HTML/CSS and things like Ruby while Java (I think) is generally used for Windows desktop applications but am I missing something else?
I had a good talk with the tutor, the only teacher that made some sense. I learned something interesting: the good part of the syllabus, the Cisco qualifications and the lab work, are completely optional. Some tutors decide to put those parts in from the kindness of their hearths, not because the department for education tells them so. However, all the useless part of the course are made mandatory by the Pearsons.
So, the government is actively pushing to make the courses as useless as possible. The few colleges that manage to teach useful skills and qualifications are doing it against the will of the gov't.
By the way, if you are in a crappy college you can get a Level 5 networking qualification and not be able to console into a router with a laptop. Now I understand why so many recruiters laugh off people with HND/HNC, many of them have absolutely no marketable skills. Fuck.
Using too much stack is generally a bad idea, as each process (thread) only has so much stack allocated to it. If you allocate huge buffers on the stack and then do some nested function calling you're going to run out of stack space and go boom.
The stack should be used purely for singular variables like integers or pointers.
In C++11+ there is almost no excuse to use the stack for storage.
If you want to store data in a super fast and easy place to be found then you can use the .bss / .data segments of your executable, albeit increasing the size of the eventual program.
Everything that is greater than the size of a pointer on your architecture should probably be stored in the heap. Compiler optimisations and wonderfully architectured heaps such as Windows LFH and things like jemalloc for *nix mean that the old overhead of dlmalloc() is a thing of the part.
tldr - the bottleneck in your code isn't going to be the heap implementation written and tested by probably millions of people.