High aptitude for computers.
LordoftheMonkeys
Veteran
Joined: 15 Aug 2009
Age: 34
Gender: Male
Posts: 927
Location: A deep,dark hole in the ground
From the Wikipedia article on Singularity:
So C, C++, and Assembly are used along with C#.
_________________
I don't want a good life. I want an interesting one.
When C# code is compiled, it becomes machine code. It follows that you can do anything you can do in C# with machine code, and thus with Assembly language as well.
Software-based memory protection is an alternative to the expensive page-based hardware memory protection used by current processors and operating systems.
LordoftheMonkeys
Veteran
Joined: 15 Aug 2009
Age: 34
Gender: Male
Posts: 927
Location: A deep,dark hole in the ground
Interesting. I will try to do some research on that.
_________________
I don't want a good life. I want an interesting one.
LordoftheMonkeys
Veteran
Joined: 15 Aug 2009
Age: 34
Gender: Male
Posts: 927
Location: A deep,dark hole in the ground
One thing I objected to in NewShinyCD's post, aside from what I already mentioned, is that they seem to have an extremely narrow, mainstream-centric view of programming. There seems to be a general attitude among amateur programmers these days that the only languages that matter are C++, C#, Visual Basic, Java, PHP, and Javascript. Fu¢k functional programming. Fu¢k command-line scripting. Fu¢k system administration. Fu¢k C, Perl, Common Lisp, Prolog, Assembly language, Python, and Fortran. Who cares about exploring possibilities and learning how things work when you can have the instant gratification of being able to write PC games with minimal effort? That's all programming is good for after all.
_________________
I don't want a good life. I want an interesting one.
Last edited by LordoftheMonkeys on 24 Oct 2010, 8:01 am, edited 3 times in total.
Bytecode is not inherently more type-safe than machine code. Bytecode is the machine code of a virtual machine.
How can you statically verify a compiled bytecode program in a way that you couldn't statically verify a compiled machine code program?
This sounds wrong. Generally, things done in hardware are much faster than things done in software.
_________________
"A dead thing can go with the stream, but only a living thing can go against it." --G. K. Chesterton
The benefit is that you don't have to write all that code (and debug it) from scratch. If you're doing something really complicated, this could be the difference between being able to do it or not.
If you want to really know computers, you do have to understand things at a low level, but that doesn't mean that the lower the level the better.
The lower the level you program at, the less productive you are. This is a well known rule in software: your productivity in lines of code is roughly constant in any language, so if you can say more in one line of code, you can get more done faster.
I do agree with you that the style of programming where you just say, "OMG I'm sure the Super-Duper-API has a call for that" to absolutely everything and assume that if it can be done, it has to be in the API is not the best way to do it.
_________________
"A dead thing can go with the stream, but only a living thing can go against it." --G. K. Chesterton
Bytecode is not inherently more type-safe than machine code. Bytecode is the machine code of a virtual machine.
Bytecode is not inherently type-safe, but both Java and C# bytecode specifically include type information where as compiled x86 code doesn't.
How can you statically verify a compiled bytecode program in a way that you couldn't statically verify a compiled machine code program?
Here's the relevant section of the jvm spec: http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#88597
Since C isn't a type safe language (explicitly casting between two pointer types is considered a legit operation), you couldn't enforce type-safety for the compiled code even if you had the means to verify type (which means your program could end up using a random set of bits as a memory address).
This sounds wrong. Generally, things done in hardware are much faster than things done in software.
Well if you were using software to implement current hardware-based memory protection schemes, then that would be slow as all hell. Currently, x86s use the a translation lookaside buffer (basically a cache of VAs and corresponding PAs) to speed up virtual address -> physical address translation. Whenever you switch to a different virtual address space, this buffer needs to be flushed, as the mappings are no longer valid. This means that every time the newly switched-to process tries to read or write a pointer, a page fault results and the processor has to walk through the page tables to resolve the address. This is an extremely expensive operation, even when implemented quickly in hardware.
The idea here is that you can make all of this run-time overhead unnecessary by verifying protection at load-time or install-time.
I only said that C# was good for someone wanting to get into programming, and you can jump to Java and C++ when you become more comfortable with programming. Then C or other low level languages.
I mean, when I first learned about programming (I was about 12 years old) I jumped into ASM but it only made me hate programming. Then someone told me about Python and the syntax was awful. Then I found out about VB and then C# which made me like to program again. My next step is probably C or something, although with the place I work at they are doing lots of promotions and I might concentrate on web scripting and database stuff.
Also I forgot, if you want to get into hardware type stuff there is the Arduino, although it does require some knowledge of programming in C++, but it is only basic loops and stuff at first (e.g. how to make a LED blink on and off).
Don't worry about that. A lot of what's said is just ideology differences. You will come to have your own opinion after you learn a few languages.
I think what you should find out first is whether you really like programming. If there's some program that you are familiar with that suppors scripting, that may be a good place to start. Like someone mentioned before, html+javascript is also a good place to start. Note that those scripting languages and javascript are horrible languages, but they let you have a feel of what programming is really about fast. If you decided to look further, then C++ and java is what I recommended.
No one has ever been required to take certifications - CompTIA or others. That doesn't mean that an employer can't have them as a requirement for a position though.
This is only the case for certifications taken on and after January 1st, 2011. You also only need to update on the highest level certification you received, so if you are A+ and Network+ certified, you would only need to take the Network+ again.
This depends a lot on what you do/want to do and the requirements set by an employer. If you want to be on a help desk, a basic Microsoft certification can be enough. If being on the help desk requires more hardware knowledge, it depends on who the hardware manufacturer is, as some only require their certification, but don't require the A+ first.
One more question
I am considering taking programming for college however I just wondered if I needed to be good at algebra to be a good programmer.
What parts of algebra give you trouble? If it's a problem with any form of abstract symbol manipulation, that's probably a problem, but if it's just being bad at factoring or somthing like that, then it probably won't.
_________________
"A dead thing can go with the stream, but only a living thing can go against it." --G. K. Chesterton
I suggest that you get a book on programming. I started with C, whether that was a good choice or not I don't know. I'm still only learning the basics, but I've tried Python as well and while that was far easier, I didn't understand the theory under the code nearly as well as I do with C. I've enjoyed programming, and from what I've read if you don't enjoy it you probably shouldn't go into the field.
Anyway, I'm not an expert. These are just my experiences with programming so far.
Similar Topics | |
---|---|
An Ingenious New Process Could Make Computers 2x Faster—With |
20 Mar 2024, 1:35 pm |
high functioning vs classic autism |
23 Mar 2024, 2:38 pm |
Bigoted students run Brooklyn High School |
06 Mar 2024, 7:49 pm |
Woolworths could make a return to the British high street |
27 Jan 2024, 12:07 am |