By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Forums - PC Discussion - i want to learn how to code....

NJ5 said:

@JaggedSac: Yeah, that's my point. The optimizations you're talking about are micro-optimizations, which (on high-level languages) require knowledge about what the compiler does to the code (i.e. what low-level code it generates from it). The most important optimizations are done by changing algorithms and other stuff which requires no knowledge of Assembly or compilers.

 

 

No, you just have to read some compiler documentation.  Yes the most important speed comes from algorithms and data structures.  But, all in all, in order to get a good grasp of programming, C is a good start.  But my point is that this is probably the argument that happened when C was first introduced.  Assemblers would say that C is taking care of everything for you and programs are going to get sloppy.  It is the same thing that is happening now and will happen in the future.  Soon only systems programmers are going to really have in depth knowledge of low level functionality, especially as more and more cores are being thrown at you.  Languages that handle threading better are about to become the big thing.  I guess it doesn't really matter at this point in time but soon C will be as niche as assembly.



Around the Network
JaggedSac said:
NJ5 said:

@JaggedSac: Yeah, that's my point. The optimizations you're talking about are micro-optimizations, which (on high-level languages) require knowledge about what the compiler does to the code (i.e. what low-level code it generates from it). The most important optimizations are done by changing algorithms and other stuff which requires no knowledge of Assembly or compilers.

 

 

No, you just have to read some compiler documentation.  Yes the most important speed comes from algorithms and data structures.  But, all in all, in order to get a good grasp of programming, C is a good start.  But my point is that this is probably the argument that happened when C was first introduced.  Assemblers would say that C is taking care of everything for you and programs are going to get sloppy.  It is the same thing that is happening now and will happen in the future.  Soon only systems programmers are going to really have in depth knowledge of low level functionality, especially as more and more cores are being thrown at you.  Languages that handle threading better are about to become the big thing.  I guess it doesn't really matter at this point in time but soon C will be as niche as assembly.

Maybe, but I think good and versatile programmers will always have some experience with low-level programming. The same way that a good carpenter knows how his tools are made ;)

PS: Yeah, compilers often have guidelines for simple stuff like the one you have shown, but guidelines will only get you so far in doing optimizations. A lot of stuff just can't be put into easy guidelines.

 



My Mario Kart Wii friend code: 2707-1866-0957

NJ5 said:
JaggedSac said:
NJ5 said:

@JaggedSac: Yeah, that's my point. The optimizations you're talking about are micro-optimizations, which (on high-level languages) require knowledge about what the compiler does to the code (i.e. what low-level code it generates from it). The most important optimizations are done by changing algorithms and other stuff which requires no knowledge of Assembly or compilers.

 

 

No, you just have to read some compiler documentation.  Yes the most important speed comes from algorithms and data structures.  But, all in all, in order to get a good grasp of programming, C is a good start.  But my point is that this is probably the argument that happened when C was first introduced.  Assemblers would say that C is taking care of everything for you and programs are going to get sloppy.  It is the same thing that is happening now and will happen in the future.  Soon only systems programmers are going to really have in depth knowledge of low level functionality, especially as more and more cores are being thrown at you.  Languages that handle threading better are about to become the big thing.  I guess it doesn't really matter at this point in time but soon C will be as niche as assembly.

Maybe, but I think good and versatile programmers will always have some experience with low-level programming. The same way that a good carpenter knows how his tools are made ;)

PS: Yeah, compilers often have guidelines for simple stuff like the one you have shown, but guidelines will only get you so far in doing optimizations. A lot of stuff just can't be put into easy guidelines.

 

Agreed.

 



The Language is unimportant. What's important is understanding OOP, and algorithms. You can know everything there is to know syntacticly about Java, C#, Fortran, C++, VB, whatever, and not know how to do a single thing if you don't know what an If statement is, and when to use it.



JaggedSac said:
NJ5 said:
JaggedSac said:
NJ5 said:

@JaggedSac: Yeah, that's my point. The optimizations you're talking about are micro-optimizations, which (on high-level languages) require knowledge about what the compiler does to the code (i.e. what low-level code it generates from it). The most important optimizations are done by changing algorithms and other stuff which requires no knowledge of Assembly or compilers.

 

 

No, you just have to read some compiler documentation.  Yes the most important speed comes from algorithms and data structures.  But, all in all, in order to get a good grasp of programming, C is a good start.  But my point is that this is probably the argument that happened when C was first introduced.  Assemblers would say that C is taking care of everything for you and programs are going to get sloppy.  It is the same thing that is happening now and will happen in the future.  Soon only systems programmers are going to really have in depth knowledge of low level functionality, especially as more and more cores are being thrown at you.  Languages that handle threading better are about to become the big thing.  I guess it doesn't really matter at this point in time but soon C will be as niche as assembly.

Maybe, but I think good and versatile programmers will always have some experience with low-level programming. The same way that a good carpenter knows how his tools are made ;)

PS: Yeah, compilers often have guidelines for simple stuff like the one you have shown, but guidelines will only get you so far in doing optimizations. A lot of stuff just can't be put into easy guidelines.

 

Agreed.

 

 

I guess. I have written a few lexical analyzers, compilers, some assembly, (and a very small amount of machine code), and I am not sure if it applies at all to my daily job, or any job I will have in the future with modern languages.

If you plan on doing control systems, or driver development, it's useful I guess. I am glad I know it at least :)



Around the Network
TheRealMafoo said:
JaggedSac said:
NJ5 said:
JaggedSac said:
NJ5 said:

@JaggedSac: Yeah, that's my point. The optimizations you're talking about are micro-optimizations, which (on high-level languages) require knowledge about what the compiler does to the code (i.e. what low-level code it generates from it). The most important optimizations are done by changing algorithms and other stuff which requires no knowledge of Assembly or compilers.

 

 

No, you just have to read some compiler documentation.  Yes the most important speed comes from algorithms and data structures.  But, all in all, in order to get a good grasp of programming, C is a good start.  But my point is that this is probably the argument that happened when C was first introduced.  Assemblers would say that C is taking care of everything for you and programs are going to get sloppy.  It is the same thing that is happening now and will happen in the future.  Soon only systems programmers are going to really have in depth knowledge of low level functionality, especially as more and more cores are being thrown at you.  Languages that handle threading better are about to become the big thing.  I guess it doesn't really matter at this point in time but soon C will be as niche as assembly.

Maybe, but I think good and versatile programmers will always have some experience with low-level programming. The same way that a good carpenter knows how his tools are made ;)

PS: Yeah, compilers often have guidelines for simple stuff like the one you have shown, but guidelines will only get you so far in doing optimizations. A lot of stuff just can't be put into easy guidelines.

 

Agreed.

 

 

I guess. I have written a few lexical analyzers, compilers, some assembly, (and a very small amount of machine code), and I am not sure if it applies at all to my daily job, or any job I will have in the future with modern languages.

If you plan on doing control systems, or driver development, it's useful I guess. I am glad I know it at least :)

Dear god I hated this stuff, writing regular expression parsers and shit.  I am more interested in software architecture instead of low level programming, maybe this makes me a little more biased.  I am also a little biased towards OOP as I find it to be amazing.  The Singleton pattern was the first pattern to really show me how creativity can solve common problems.

 



JaggedSac said:

Dear god I hated this stuff, writing regular expression parsers and shit.  I am more interested in software architecture instead of low level programming, maybe this makes me a little more biased.  I am also a little biased towards OOP as I find it to be amazing.  The Singleton pattern was the first pattern to really show me how creativity can solve common problems.

 

 

Yea, I love OOP. We are also starting to do Lean development, and I am loving that.



I had never heard of Lean development but just google it and it looks interesting. The company I work for is far from agile or lean. VERY beauracratic and everyone needs documents to cover their asses. It is a pain but since the company is so big it offers some security.



JaggedSac said:
I had never heard of Lean development but just google it and it looks interesting. The company I work for is far from agile or lean. VERY beauracratic and everyone needs documents to cover their asses. It is a pain but since the company is so big it offers some security.

 

Lean was conceived at Toyota, so it can be done in a large environment. The main advantage imo of Lean, is people over process, and nowhere is that more important, than in a large company.

There are a lot of great books on it. Even if you never plan doing it, it's interesting to read up on.



Without a doubt learn C.
There is also a book called The C Book in pdf format that can be downloaded at no cost.



Prediction:
Disney will make KH3 with Nintendo.Yes,KH3 will be a Disney/Nintendo crossover.

Save the industry,Kill a Hardcore gamer

Stopped buying Ubisoft games.Will not buy Red Steel 2.Let them struggle on HD. Click here for a solution:CLICK
ALERT: I have also exposed a UBI'Z'OFT viral marketer in THIS thread.Read my posts, see the set up and watch how everything crumbles on page 8. Please learn from this experience.