Computer Programming Concepts
Page 1 of 110 Replies - 4002 Views - Last Post: 31 May 2011 - 02:47 PM
#1
Computer Programming Concepts
Posted 30 May 2011 - 06:40 PM
Replies To: Computer Programming Concepts
#2
Re: Computer Programming Concepts
Posted 30 May 2011 - 06:49 PM
#3
Re: Computer Programming Concepts
Posted 30 May 2011 - 07:22 PM
macosxnerd101, on 30 May 2011 - 09:49 PM, said:
Thanks. I'll bookmark that thread and take a look at it tomorrow, when I'm not as tired.
Looks like I'm part of stage 2 and 3 with PHP. Python I'm at like stage 1. I'll research items on your list I don't know about.
Is it a bad thing that I know of only two data types, string and integer? lol
This post has been edited by EnvXOwner: 31 May 2011 - 02:23 AM
#4
Re: Computer Programming Concepts
Posted 31 May 2011 - 06:16 AM
Do you not have a Borders or Barnes & Noble within driving range?
Fry's Electronics is more rare, but has more targeted book selection.
I will admit that I go to the bookstore, scan the ISBN with an app on my iPhone to see if their prices are reasonable. I don't mind paying *somewhere in the neighborhood* of other stores, but sometimes you see Borders price at $45 for a book I can get shipped to me for $20 and free shipping. This also makes a good shopping list for me.
#5
Re: Computer Programming Concepts
Posted 31 May 2011 - 06:22 AM
Quote
You're a PHP programmer by trade, right? Have you heard of PDO or MySQLi? When you instantiate a new PDO() or new mysqli(), PDO and mysqli act as data types. Arrays are data types as well. When you work with OOP and design a class, that class is a data type. I'm sure you've heard of more data types as well.
#6
Re: Computer Programming Concepts
Posted 31 May 2011 - 07:31 AM
Objects
Functions
Types
Scope
Control
Those are the five basics, but MacOSXNerd does a good job of going into deeper concepts around them.
#7
Re: Computer Programming Concepts
Posted 31 May 2011 - 10:10 AM

POPULAR
Underlying code - how does code get generated in your language? How does that affect your code? If you can, look at the object code (ie, compile your C to assembly or use javap -v to look at your java bytecode). Understand what's actually going on under the hood.
Assembler - while you're at it, learn some assembler. These days, there's really no excuse for not having a cheap laptop with a CLI install of linux, just for trying low-level stuff like that. Randall Hyde has a few good books from No Starch under the title of "Write Great Code" - mostly, he's talking about the relevance of a working knowledge of assembler to a higher-level programmer. I think he's got a good point.
Learn more languages. PHP is fine, but if you want to know more about programming you should probably get yourself comfortable in about a half-dozen languages. For me, a basic toolkit includes C, Java, perl, *sh, a lisp or two, and probably something more modern like python or like that. You can substitute, of course - if you like the .NET framework, C# is basically a Java knockoff, so you can swap those around, and PowerShell is a sort of degraded mutant perl - but the idea is to gain a degree of breadth. I don't say you should be expert in those, but you should be able to write a small but non-trivial program without too much bother, or for perl and *sh you should be able to write useful tools quickly and impress your friends. The point is to get a sense of what's easy in each of them, not just to do what's easy in your own preferred language.
Read a lot. The Little Schemer is probably my favorite book for programmers - it's written to Scheme, obviously, but you should be able to modify the problem set (if not the answers provided) for any flavor of lisp, or for perl or Python if you're really a mental case. Solving the problems in that book will absolutely make you a better programmer, and it's a lot of fun. Knuth, of course, is a touchstone work, but it's also really beautifully written. I've just started in on TAOCP1, and it's making me think a lot. Hofstadter's Goedel Escher Bach is a great one, and Raymond Smullyan's puzzles are great fun ("What Is the Name Of This Book?" is a great collection).
Lear some math: Learn some set theory, theory of functions. Again, you don't have to get a PhD in math, but wrestling with this stuff will make it easier to think about programming. Rosenbloom's Elements of Mathematical Logic is available from Dover for cheap, and in the first five pages he establishes the connection between Boolean Logic and set theory - not bad.
Write a lot of programs. Little ones and medium ones are good - project euler (projecteuler.net) is a great source of ideas for small programs that will make you work pretty hard, and there are plenty of medium-sized ideas out there. Write a simple text editor. See if you can make it good enough to use regularly.
That'll get you started, anyway.
#8
Re: Computer Programming Concepts
Posted 31 May 2011 - 10:28 AM
I think the most important thing is understanding why. Why do computers work in binary? Why do we need to initialise a variable?
If you understand most of the whys and you can learn a language quickly (because lets face it, if they are in the same paradigm then they are usually more or less the same language). Also, do not be afraid of change. Keep up to date with technology (as much as you can anyway, sometimes it gets expensive) and if you feel bored try another paradigm. Personally I do not tend to have many problems with OOP or Procedural but I cannot yet write a full program in a functional language (although I do love what I can do and have seen people do in haskell!).
#9
Re: Computer Programming Concepts
Posted 31 May 2011 - 11:32 AM
Shane Hudson, on 31 May 2011 - 12:28 PM, said:
QFT. Understanding, as much as you can, the machine down to the basics, is both fun and productive. Asking "why" is a great way to get there.
#10
Re: Computer Programming Concepts
Posted 31 May 2011 - 02:39 PM
tlhIn`toq, on 31 May 2011 - 09:16 AM, said:
Do you not have a Borders or Barnes & Noble within driving range?
Fry's Electronics is more rare, but has more targeted book selection.
I will admit that I go to the bookstore, scan the ISBN with an app on my iPhone to see if their prices are reasonable. I don't mind paying *somewhere in the neighborhood* of other stores, but sometimes you see Borders price at $45 for a book I can get shipped to me for $20 and free shipping. This also makes a good shopping list for me.
I live near a Barnes and Nobles. I love that store. lol. I'll see if my dad will take me there.
macosxnerd101, on 31 May 2011 - 09:22 AM, said:
Quote
You're a PHP programmer by trade, right? Have you heard of PDO or MySQLi? When you instantiate a new PDO() or new mysqli(), PDO and mysqli act as data types. Arrays are data types as well. When you work with OOP and design a class, that class is a data type. I'm sure you've heard of more data types as well.
Yeah, I'm a PHP programmer. I'm not sure if I've heard of PDO, but I've heard of MySQLi, which I'm using in a project right now. I really don't know the difference between MySQL and MySQLi, but I'll Google that.
Thanks guys, I'm taking everything into consideration.
#11
Re: Computer Programming Concepts
Posted 31 May 2011 - 02:47 PM
jon.kiparsky, on 31 May 2011 - 01:10 PM, said:
Underlying code - how does code get generated in your language? How does that affect your code? If you can, look at the object code (ie, compile your C to assembly or use javap -v to look at your java bytecode). Understand what's actually going on under the hood.
Assembler - while you're at it, learn some assembler. These days, there's really no excuse for not having a cheap laptop with a CLI install of linux, just for trying low-level stuff like that. Randall Hyde has a few good books from No Starch under the title of "Write Great Code" - mostly, he's talking about the relevance of a working knowledge of assembler to a higher-level programmer. I think he's got a good point.
Learn more languages. PHP is fine, but if you want to know more about programming you should probably get yourself comfortable in about a half-dozen languages. For me, a basic toolkit includes C, Java, perl, *sh, a lisp or two, and probably something more modern like python or like that. You can substitute, of course - if you like the .NET framework, C# is basically a Java knockoff, so you can swap those around, and PowerShell is a sort of degraded mutant perl - but the idea is to gain a degree of breadth. I don't say you should be expert in those, but you should be able to write a small but non-trivial program without too much bother, or for perl and *sh you should be able to write useful tools quickly and impress your friends. The point is to get a sense of what's easy in each of them, not just to do what's easy in your own preferred language.
Read a lot. The Little Schemer is probably my favorite book for programmers - it's written to Scheme, obviously, but you should be able to modify the problem set (if not the answers provided) for any flavor of lisp, or for perl or Python if you're really a mental case. Solving the problems in that book will absolutely make you a better programmer, and it's a lot of fun. Knuth, of course, is a touchstone work, but it's also really beautifully written. I've just started in on TAOCP1, and it's making me think a lot. Hofstadter's Goedel Escher Bach is a great one, and Raymond Smullyan's puzzles are great fun ("What Is the Name Of This Book?" is a great collection).
Lear some math: Learn some set theory, theory of functions. Again, you don't have to get a PhD in math, but wrestling with this stuff will make it easier to think about programming. Rosenbloom's Elements of Mathematical Logic is available from Dover for cheap, and in the first five pages he establishes the connection between Boolean Logic and set theory - not bad.
Write a lot of programs. Little ones and medium ones are good - project euler (projecteuler.net) is a great source of ideas for small programs that will make you work pretty hard, and there are plenty of medium-sized ideas out there. Write a simple text editor. See if you can make it good enough to use regularly.
That'll get you started, anyway.
I plan on learning a lot more languages than PHP. I plan on learning Assembly, C, C++, Java, Ruby, and Python. Maybe more, but as of now that is it. Good thing I like math, so I'll be able to sit down and learn set theory, and they of functions. I'll certainly check out the books you have mentioned. Thanks for the advice !
|
|

New Topic/Question
Reply



MultiQuote









|