The Big Programming Thread - Page 575
Forum Index > General Forum |
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. | ||
Blitzkrieg0
United States13132 Posts
| ||
LaNague
Germany9118 Posts
IF i do communication of hardware, its with a custom protocol over custom, serial or USB ports. I was asking because i wasnt sure if they have some kind of special value for HR people. Ill decline then, i guess they just want to have some certifications flying around, ill hint at better ones that suit my career ![]() | ||
Manit0u
Poland17207 Posts
Nice litte article I've found. Thought I'd share. | ||
Blitzkrieg0
United States13132 Posts
On February 01 2015 08:54 LaNague wrote: yeah its CCNA, the entry one. IF i do communication of hardware, its with a custom protocol over custom, serial or USB ports. I was asking because i wasnt sure if they have some kind of special value for HR people. Ill decline then, i guess they just want to have some certifications flying around, ill hint at better ones that suit my career ![]() CCNA+Experience is a guaranteed IT job around here. Not sure how things are in Europe or what you're doing though, but I got the impression you weren't in IT. | ||
sabas123
Netherlands3122 Posts
The simpelst things I used to do in stuff like php is getting so much more diffucult in C, anybody experianced this aswell? | ||
Ilikestarcraft
Korea (South)17726 Posts
On January 29 2012 17:54 Abductedonut wrote: I can say that this is a direct result of learning java first. I know lots of students who come from java without any prior programming experience and C/Assembly is horrible to them and they don't feel like know "anything." Here's the basic truth.... Computer Science isn't all programming. Programming is how you APPLY the concepts you learn in computer science. To use an analogy, you're learning how to build a car from inside before actually building it ( programming ). Algorithms and data structures and classes like that teach you when to use a V8 engine rather than a V12 engine... etc etc. So if I were to basically list out languages from lowest level to highest, it would sorta go like this: - Machine Language - Assembly - C - C++/Java/C#... Machine Language is pretty useless to learn from what I've seen. Assembly is SUPER important because C/C++ code eventually gets translated to assembly. It's important to learn what happens on the lower levels when you create a function in C. You want to know how C sets up the stack and all that, and that's how knowing Assembly Language helps. Anyway, I digress. As you learn C, you will realize that you'll slowly become "pro" at programming. No bullshit things like objects and code written for you in C. C really is a no-bullshit language, and you have to know exactly what you're doing or else you'll spend majority of your time fighting the code. C will introduce you to wildly advanced topics like returning ANY type of data from a function (void pointers), passing entire functions as arguments, or returning entire functions ( function pointers )... hell you'll even learn neat tricks like optimizing switch statements by using function pointers. You'll learn EXACTLY when to pass things by reference and EXACTLY what happens inside your code. No more "let's change this and hope it works!" C is THE nerd's computer language. Most people in this thread will come in here and argue that java, python, whatever language they use is better and it might be true, but you don't "truly" learn to program unless you do so in C. Once you're completely comfortable with the basics on C, I suggest you work on mastering these topics: - OS APIs... ( WIN32 API, int 0x80 system calls.. ( basically linux system calls )... dunno what trashSX uses... ) - Network Programming ( Sockets, TCP/UDP ports, sending GET/POST through C for port 80 ) - Multi-threaded Programming - GUI Programming using OS APIs... Avoid using things like QT's drag and drop GUI builder because you won't learn anything - * This list in incomplete, but that's all that comes to my mind atm. I could mention things like global keyboard hooks, directX hooks, etc, but you'll discover those as you want to do certain projects. Will add stuff if I can remember it for the future! * Once you've got all that down, you'll pretty much be able to program "anything." Your CS classes will come back remind you what search algorithms, data structures, and boolean logic to use to make your programs better. At this point, when you move onto other languages it will be more about syntax. Your questions will shift from "Well how do I connect to a server?" to "Where can i find the socket API to this language?" You'll know what you need, and it will just be a matter of how to find it. I've gotten to a point where I can learn languages in about 2 hours. I learned how to program in matlab to help my friend out in under 20 minutes. I learned javascript programming for Adobe After Effects in about an hour and I was able to help visual effects artists modify various features of their shots by writing scripts for them. That's my suggestion to you. Learn C, then go back and touch over assembly and you'll be able to program in anything. Now... if you want to be a TRUE nerd and pwn EVERYONE at programming... start learning how to hack/crack/reverse engineer software. Hacking requires you know everything about everything, and it will open up your eyes to programming like you've never seen before. You'll learn how accidentally using a pointer after freeing it can cause a skilled programmer/hacker to compromise the entire system. Hacking is the CRUX of computers, and the most skilled programmers and computer scientists result from hacking. You can start off with a book called "The Shellcoder's Handbook" if you're interested in touching on the topic. That book is very technical and will really get you thinking about how things inside the computer work... Ah, and just for some light reading... Here's a post by Linus Torvalds... the creator of the Linux operating system. I think this is hilariously interesting! + Show Spoiler + http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918 | ||
Manit0u
Poland17207 Posts
On February 01 2015 20:15 sabas123 wrote: So im starting to learn C, working with pointers is really fun but confusing as hell. The simpelst things I used to do in stuff like php is getting so much more diffucult in C, anybody experianced this aswell? Like Ilikestarcraft pointed out, it's a matter of where you come from. If you learned higher level language first, C might seem like hell. If you learned C before higher level languages they seem rather simple. But do not despair. Here's a nice resource that'll get you jump-started in C: http://c.learncodethehardway.org/book/ Basic pointer explanation in there: http://c.learncodethehardway.org/book/ex15.html On a side note. I think that some of the simplest things done in C are made exponentially harder in PHP. The sole fact that a variable in PHP can hold anything and you can freely change it around is just scary. Eg:
That's why in PHP you must put extra special care on guarding your methods against unexpected data types being passed to them. I hate it (not PHP, just this small part of it), especially that a lot of people tend to abuse this feature. | ||
ZenithM
France15952 Posts
| ||
sabas123
Netherlands3122 Posts
@Manit0u aaaahhh, yes that true. Luckly I never encoutered any need to start doing that . Also in "Lean C The Hard Way" they say its a good thing to stay away from pointers, should I listen to this? | ||
nunez
Norway4003 Posts
away from spoons, lest you embarass yourself eating soup. | ||
Nesserev
Belgium2760 Posts
| ||
Blisse
Canada3710 Posts
| ||
sabas123
Netherlands3122 Posts
On February 02 2015 03:27 Blisse wrote: agh the same guys in OCN gave up their dumb "if (++i > 10) { ... }" argument (because who knows, maybe it was dumb) and revised it to "you should avoid all verbosity because more code is more error prone". god i hate that i have to reply to them. STOP USING ABSOLUTES GAH. there's still one guy who stays on his high horse with like "if you make a mistake reading ++i then you shouldn't be in this field and i dont want to work with you". this is why i stay on tl. who would even come up with the idea to start using ++i T_T this stuff makes me wondor how many people exactly know whats going on behind a langauge. | ||
Manit0u
Poland17207 Posts
On February 02 2015 03:53 sabas123 wrote: who would even come up with the idea to start using ++i T_T this stuff makes me wondor how many people exactly know whats going on behind a langauge. ![]() | ||
sabas123
Netherlands3122 Posts
On February 02 2015 04:42 Manit0u wrote: You don't know what's going on behind a language until you start using the bitwise XOR assignments ![]() Im going to try that somtime. | ||
Manit0u
Poland17207 Posts
Naah, was just kidding. Bitwise operators should be the same for every language, but they're pretty hardcore nonetheless and I have literally 0 idea how could they interact with some objects. Would you be able to use it on Java's Integers for example? | ||
Ben...
Canada3485 Posts
On February 02 2015 03:27 Blisse wrote: agh the same guys in OCN gave up their dumb "if (++i > 10) { ... }" argument (because who knows, maybe it was dumb) and revised it to "you should avoid all verbosity because more code is more error prone". god i hate that i have to reply to them. STOP USING ABSOLUTES GAH. there's still one guy who stays on his high horse with like "if you make a mistake reading ++i then you shouldn't be in this field and i dont want to work with you". this is why i stay on tl. Haha I just went and found what you were talking about on there (I don't read or post on OCN but it was easy to find). Yup. That one dude's posts seemed rather flawed.There appears to be a few people on there who think way too highly of themselves. Though in this area we run into that a lot. I've always found that a person's prowess at programming is inversely proportional to how much they talk up their skills (except for those that are actually as good as they say, but that's a rarity). | ||
Ropid
Germany3557 Posts
On February 02 2015 00:32 sabas123 wrote: that stuff from abductedonut is really good, It motivates me alot to stick to learning C. @Manit0u aaaahhh, yes that true. Luckly I never encoutered any need to start doing that . Also in "Lean C The Hard Way" they say its a good thing to stay away from pointers, should I listen to this? You probably shouldn't worry. You will run into situations where you absolutely need pointers. This will be pretty obvious. If you want to pass something large like a struct or an array to a function, you'll probably want pointers. If you don't use pointers, the whole struct or array will be copied. Using a pointer, it's just a memory address. Java actually also works like this and uses pointers to the objects. You need pointers if you want to use "dynamic memory allocation". You request an unused piece of memory from malloc(), and you'll save that address you get into a pointer. That's again something you'll use with arrays or structs. About the quoted post... I was always thinking the same, but I'm currently battling with "declarative programming" stuff, and knowing how things are probably executed on the machine doesn't really help at all. Things just feel crazy with that background. ![]() | ||
ZenithM
France15952 Posts
On February 02 2015 04:52 Manit0u wrote: Naah, was just kidding. Bitwise operators should be the same for every language, but they're pretty hardcore nonetheless and I have literally 0 idea how could they interact with some objects. Would you be able to use it on Java's Integers for example? Why, yes of course :D Bitwise operators are really useful when you're comparing arrays of booleans packed into ints for example. Not the best programming practice, I know, but sometimes you gotta find ways to lower dat memory footprint. | ||
![]()
Spazer
Canada8028 Posts
| ||
| ||