PDA

View Full Version : Question about computer programming


Moooo
08-23-2006, 09:42 PM
Okay, so I'm thinking about going into a CIS degree. I don't know anything about programming though, and I'd kind of like to before I go into getting a degree in it.

How do you know the differences between different programming languages? Do some of them work better at different things? Or is it just a personal preference?

I bought a book at Barnes and Noble in the bargain section on how to program in C (not C++ or C#). i don't know anything about any languages, so I figured this could be a good starting point to see if its something I wanna do.

I've done a few searches but its hard to find anything about programming in general. Most of them are about specific languages and how to do them. Any help and/or links would be AWESOME!

Moooo

phisherman
08-24-2006, 06:26 AM
the only difference between different languages is syntax...

knowing the logic is the difficult part of programming...

once you know the logic of a linked list, it's pretty easy to jump between languages and build them

though i did graduate from CMSU w/ a CIS degree and learning COBOL almost made me change my major; now that's a cumbersome language

ZepSinger
08-24-2006, 06:50 AM
the only difference between different languages is syntax...

knowing the logic is the difficult part of programming...



You got that right. I took basic Java in '96; unfortunately (or maybe fortunately, the jury's still out on that one), I simply do not have the programmer's mindset. I'm all about the graphical, creative, artistic side of it. And never the two shall meet, apparently... :(

Z

Moooo
08-24-2006, 08:42 AM
You got that right. I took basic Java in '96; unfortunately (or maybe fortunately, the jury's still out on that one), I simply do not have the programmer's mindset. I'm all about the graphical, creative, artistic side of it. And never the two shall meet, apparently... :(

Z

This sounds like me. I'm an idea person.

I did some research that said VB sucks cause its MS, but that its also easier to learn than most. There was one called Python that got some nods, but I've never heard of that one.

I'm probably going to do a networking degree. Programming doesn't bother me, but only as a sidenote. If I have to make a little something on the side that's cool, but I am more about the network side.

Moooo

penguinz
08-24-2006, 04:28 PM
Become a DBA. The demand is growing and will continue to grow.

StcChief
08-24-2006, 04:30 PM
DBA/Developer db designer....

Data goes on forever in business.

Client tools, front end tools come and go.

KC Jones
08-24-2006, 07:13 PM
To be a good/great programmer you need to know and be good at:

1) Mathematics - Proof Theory, Set Theory, Model Theory etc. all play a crucial role in programming. This is the geist of the logic of programming. The heart of programming is finding the 'best' algorithm to apply in a given situation so that it can be repeated for that problem.

2) Hardware - A good programmer understands memory allocation, registers, signal processing, etc. All the really low level nuts and bolts of computational machines. They most likely won't retain much of this, but it's so important to know the basics so you can understand what you're doing to the machine when you design your program.

That said, there are philosphies for programming, and there is a very strong creative aspect. The Art of Programming is one of my favorite essays on the topic. I love programming, it's a fantastic challenge and I love building something out of pure logic. Good luck to you and I hope you enjoy the ride!

KC Jones
08-24-2006, 07:18 PM
There was one called Python that got some nods, but I've never heard of that one.


Python is an interesting language, its one of the only ones I know of in which white space matters. VB is heavily gui based and not so much about logic as building windows applications. Ruby is a great language to learn/play in and a real up and comer. It has some very interesting developments, but might be a bit too complex. For a beginner learning about the logic and the nature of machine resources is important, so something like C might not be a bad idea. Most modern languages are based on C syntax anyway (C++, Java, C#, Ruby, Python, etc.)

StcChief
08-24-2006, 07:19 PM
To be a good/great programmer you need to know and be good at:

1) Mathematics - Proof Theory, Set Theory, Model Theory etc. all play a crucial role in programming. This is the geist of the logic of programming. The heart of programming is finding the 'best' algorithm to apply in a given situation so that it can be repeated for that problem.

2) Hardware - A good programmer understands memory allocation, registers, signal processing, etc. All the really low level nuts and bolts of computational machines. They most likely won't retain much of this, but it's so important to know the basics so you can understand what you're doing to the machine when you design your program.

That said, there are philosphies for programming, and there is a very strong creative aspect. The Art of Programming is one of my favorite essays on the topic. I love programming, it's a fantastic challenge and I love building something out of pure logic. Good luck to you and I hope you enjoy the ride!
Understanding the how computers work, cpu,io, ext devices...
a Real O/S not windows.

I'll add Logic, If you going the Database route. Think in sets of data.
Data Volume. Understanding Relational databases. (currently what most companies run)

the background in relational design course work Books by (Codd , Date) a must read.

Get a download of a real database Oracle XE is free small footprint.

Simplex3
08-24-2006, 09:26 PM
Look into being a DBA, there's more demand than just generic "programmers". It's also more akin to the networking side of the business since you're working within a structured environment.

It really doesn't matter what language you learn first, it's all about getting a handle on the basics. It can't be said enough, a good programmer is a good programmer regardless of the language he's using. Some guys have a nack for building things in their minds and then applying that in code, others simply do not. I know some servicable coders that are by-the-book types, but the great ones I know got there despite their schooling IMO.

PS: Learn on *nix or spend your career competing with every halfwit plumber and secretary who got into programming during the dot com era and is currently taking jobs for nothing. Windows programming is whored out at the entry and mid levels.

Moooo
08-31-2006, 12:40 AM
PS: Learn on *nix or spend your career competing with every halfwit plumber and secretary who got into programming during the dot com era and is currently taking jobs for nothing. Windows programming is whored out at the entry and mid levels.

How does a different operating system influence they way you can write code? Are certain programming languages only usable on certain OSs?

For example, does that mean I can't use C to program in Linux? Or use Perl for a Windows application?

Moooo

StcChief
08-31-2006, 06:23 AM
No. Windows has the lock on it stuff. VB works with windows.

C/Unix or windows etc. They just have to have a compiler for OS.
Java both.

Assembly languages are OS specific to a Chip.
Motorola different than Intel...

You need to read about general computing to understand this basic concept.

Compiled vs. Intrupreted (sp) languages
http://en.wikipedia.org/wiki/Interpreted_language

HC_Chief
08-31-2006, 06:37 AM
heh Java... "write once, break everywhere" :D

If you choose the .NET path, go VB AND C#. VB because it is in demand, C# because it is syntactically similar to other common languages (C, Java).

If you choose Java, let me be the first to console you.... poor bastard.

Data-tier needs more strong programmers. Most of the app jockeys don't know shit about developing a proper data-tier. There is a lot of money to be made in cleaning up others' data tier messes (esp on the M$ side where the VB programmer typically gets assigned to developing the SQL tier, f*cks it all up, then the CIO comes begging for help from someone who actually knows wtf they are doing). On the Oracle side everything is such a huge pain in the ass to accomplish, it takes teams of trained individuals to implement a proper data tier (esp w/ Oracle Financials; that mofo is frigging HUGE and unwieldy).

Forget DB2, Informix, Sybase, MySQL.... unless you want to work for IBM, the state (NOOOOOOO!!!!!), or some pissant mom&pop shop who will never pay you market. M$ and Oracle are the way to go. Learn BOTH and you will be in demand in virtually every fortune 500 company ;)

Or go the deeper analytical route and learn SAS, ANN (neural networks), SAP, Cognos. Be warned, M$ is starting to spend A LOT of money to get into that space. They are currently 4 in the market and rising... meaning some of those companies will get gobbled up in the not-to-distant future.

KC Jones
08-31-2006, 08:22 AM
heh Java... "write once, break everywhere" :D

If you choose Java, let me be the first to console you.... poor bastard.


You can pretty much toss out everything this guy said after that. He clearly doesn't know what the hell he's talking about.

:D


Languages are for the most part independent. However, you are writing applications for a given platform, which means you learn about that OS, it's APIs, platform specific libraries, harware interfaces, etc. Java is one language that's interpreted for the platform by a virtual machine, so instead of learning OS or hardware specific APIs you learn Java's abstracted and simplified API and your code can move from windows to unix to BSD to OS400, etc. That would be one way to learn programming concepts and basics without worrying about the hardware and OS aspect, but it's important to learn those eventually so switching to C or something else a little lower would be helpful later on.

StcChief
08-31-2006, 09:50 AM
Work the Data tier side. AKA Serverside programming.

Front ends come and go.... A well designed data access layer goes along way to secure the data and isolate FE.

Keep as much data access business logic in Stored procedures (M$ sqlserver) or Oracle Packages.

Api on top of that in your lang of choice Java, C, C#

Moooo
08-31-2006, 12:43 PM
Work the Data tier side. AKA Serverside programming.

Front ends come and go.... A well designed data access layer goes along way to secure the data and isolate FE.

Keep as much data access business logic in Stored procedures (M$ sqlserver) or Oracle Packages.

Api on top of that in your lang of choice Java, C, C#

I was really wanting to go into Network Admin. I don't know how good of a field that is, but its interesting to me. I would need to know programming to do something like that, and I thought I could start learning in my own time before I get into a 16 week class and get overwhelmed.

So work on the Data side... are these jobs subject to outsourcing?

Moooo

HC_Chief
08-31-2006, 01:58 PM
I was really wanting to go into Network Admin. I don't know how good of a field that is, but its interesting to me. I would need to know programming to do something like that, and I thought I could start learning in my own time before I get into a 16 week class and get overwhelmed.

So work on the Data side... are these jobs subject to outsourcing?

Moooo

Need to know programming for Network Admin? Who told you that? Most network admins I've met (about two thousand of 'em) don't know how to program and the ones who do know, don't want to.

NetAdmin = glorified babysitter (IMO). All you do is monitor systems and put out fires. Every once in a while you get to do some interesting stuff, like upgrade systems or migrate systems or consolidate systems, but those are few and far between (can be VERY expensive and affect all aspects of a company's IT).

If you are interested in hardware and don't want to be bored, and want to get PAID, you can specialize in storage arrays and SAN fabric technologies. SAN is in demand, and it pays very well.

ChiefsFan4Life
08-31-2006, 02:01 PM
Get into the field of Usability, you won't regret it

StcChief
08-31-2006, 02:35 PM
I was really wanting to go into Network Admin. I don't know how good of a field that is, but its interesting to me. I would need to know programming to do something like that, and I thought I could start learning in my own time before I get into a 16 week class and get overwhelmed.

So work on the Data side... are these jobs subject to outsourcing?

Moooo
If your worried about being outsourced.

Just stay compleletely out of IT go fix cars, Plumbing, electric, etc.
go to law school :rolleyes: :rolleyes:

A good serverside designer programmer/developer DBA on data tier side won't be short of work.

That is one skill that seems to be in sort supply everywhere.

The Indian's I've delt with are unimpressive in that area of IT.
They seem unimaginative, not-creative. Thinking outside the box is not their forte.

HC_Chief
08-31-2006, 02:52 PM
If your worried about being outsourced.

Just stay compleletely out of IT go fix cars, Plumbing, electric, etc.
go to law school :rolleyes: :rolleyes:

A good serverside designer programmer/developer DBA on data tier side won't be short of work.

That is one skill that seems to be in sort supply everywhere.

The Indian's I've delt with are unimpressive in that area of IT.
They seem unimaginative, not-creative. Thinking outside the box is not their forte.

I agree.... esp w/ the last three sentences. VERY nice people, and very bright, and technically sound (for the most part), but completely lacking creativity. Give them a job to do and they will do it; very much task oriented, rather than result/solution oriented.

StcChief
08-31-2006, 03:03 PM
I agree.... esp w/ the last three sentences. VERY nice people, and very bright, and technically sound (for the most part), but completely lacking creativity. Give them a job to do and they will do it; very much task oriented, rather than result/solution oriented.

Alot of it seems the culture and not understanding the business aspect,
what is possible and doing experiment approach to problem solving in IT.

We don't have anything to worry about, as long as you must detail ever single task to them to operate like a machine.

HC_Chief
08-31-2006, 03:24 PM
Alot of it seems the culture and not understanding the business aspect,
what is possible and doing experiment approach to problem solving in IT.

We don't have anything to worry about, as long as you must detail ever single task to them to operate like a machine.

Heh, no kidding. I had to do just that recently. It was a complete disaster: spent more time documenting what I needed them to do than it would have taken me to just do it. Then the iterative process of code correction drew it out even further. It absolutely wrecked to budget. Eventually we shitcanned the offshoring model. We never should have used it in the first place but some dumbass convinced the client that the lower hourly rate would save them money. Overall, it did, but it cost us dearly: it was a fixed bid contract. :-/

So guess who got to go back and rewrite everything from scratch? Worst part was it took a helluva lot less time to get it done and it was done right the FIRST TIME. :grr:

cdcox
08-31-2006, 05:07 PM
I'd distinguish between good languages for learning programming from most modern languages. A good language to learn from programming would be QBasic. It's not syntax heavy, you can learn the branching, loops, and logic, and write some real programs without getting bogged down in higher level concepts. I'd get a book, such as the Absolute Beginners Guide to programming and plow through it.

http://www.amazon.com/Absolute-Beginners-Guide-Programming-Third/dp/0789729059/ref=pd_ecc_rvi_3/102-7525478-6857721?ie=UTF8

It goes without saying that the only way to learn to program is to write programs. As soon as possible, you want to be working on your own programming project that you really care about. I think that is a much more effective way of learning than doing exercises that someone else makes up and the motivation to learn is 10x greater if you care about the program you are writing.

Once you've developed a project or two, you will be ready to move into any of the modern languages. If you want a bit more of a challenge, you could dip into something like C from day one. The problem here is that in addition to learning the basics of programming, you are going to have to deal with some more arcane topics such as pointers, memory allocation and clean-up, that are going to make learning that much harder. If you want to go that route, try the Absolute Beginners Guide to C

http://www.amazon.com/Absolute-Beginners-Guide-C-2nd/dp/0672305100/ref=pd_ecc_rvi_2/102-7525478-6857721?ie=UTF8

I wouldn't dive into object-oriented programming (C++, C#, or Java) until I had a good grasp of either QBasic or C, because the level of abstraction is even higher here.

I first taught myself programming on a HP programmable calculator in the late '70s. I took one Fortran class in college, but that was mostly syntax since I already knew the logic of programming. I used Fortran and QBasic (which was very easy to learn after Fortran) until last year, when I taught myself Java. Java would have been a steep curve if I didn't already have some programming experience behind me.

StcChief
09-01-2006, 11:47 AM
Heh, no kidding. I had to do just that recently. It was a complete disaster: spent more time documenting what I needed them to do than it would have taken me to just do it. Then the iterative process of code correction drew it out even further. It absolutely wrecked to budget. Eventually we shitcanned the offshoring model. We never should have used it in the first place but some dumbass convinced the client that the lower hourly rate would save them money. Overall, it did, but it cost us dearly: it was a fixed bid contract. :-/

So guess who got to go back and rewrite everything from scratch? Worst part was it took a helluva lot less time to get it done and it was done right the FIRST TIME. :grr:
When all you see is the hourly rate....

extra coordination time,
having to spend a ton of time effort documenting down to near psuedo
code level.....

Code review due to distrust ability, not following standards etc...

But the real frosting on this is cake. the Rework of projects.

Too many horror stories that don't make the IT news. Egg on face of upper management trying to think they saved costs.

Some IT jobs can be done off shore. Others not.