Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

rappr

macrumors regular
Jul 8, 2007
133
264
You know what I can't stand? I can't stand these self-important, elitist software programmers that huff on their finger nails as if they walk on water. I work with a ton of them. This building is so full of software programmers that talk to people like their idiots because they aren’t part of the software group. It kills me. And half of them have the personality of a dead fish. Don’t get me started!

Anyway, do everyone a favor once you get into programming: Lose the all-so-common inflated ego problem. Anyone can code, anyone can become a programmer. It all depends on your ability to learn and your determination to do so. Good luck.

Amen.
 

iSee

macrumors 68040
Oct 25, 2004
3,540
272
You know what I can't stand? I can't stand these self-important, elitist software programmers that huff on their finger nails as if they walk on water. I work with a ton of them. This building is so full of software programmers that talk to people like their idiots because they aren’t part of the software group. It kills me. And half of them have the personality of a dead fish. Don’t get me started!

Anyway, do everyone a favor once you get into programming: Lose the all-so-common inflated ego problem. Anyone can code, anyone can become a programmer. It all depends on your ability to learn and your determination to do so. Good luck.

LOL! That's a good rant!

If it makes you feel any better, I've found that most of the guys like this aren't actually all that great as programmers. I think the I-know-best attitude can prevent a programmer from thinking openly and creatively about finding good solutions to problems. These guys attain certain domain knowledge and then try to apply it to every problem that pops up.


As you say, to be a programmer, the main thing you need is determination and the ability (and willingness) to learn. You should probably also enjoy abstract problem-solving, since that's mostly what you'll be doing.

A nice thing about programming is that you don't need to be that experienced to do small but useful and interesting things.
 

dejo

Moderator emeritus
Sep 2, 2004
15,982
452
The Centennial State
Anyone can code, anyone can become a programmer. It all depends on your ability to learn and your determination to do so. Good luck.
True that. But it takes a certain talent to be really good at it. Having a good balance between left-brain and right-brain thinking will really help.
 

ChrisA

macrumors G5
Jan 5, 2006
12,917
2,168
Redondo Beach, California
My email signature reads...

"A Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter." -Eric Raymond

In all honesty though, the original poster has a long road ahead of him.

Eric is wrong. If the university is worth anything at all they will NOT wast time teaching computer science students the "technology of the day" Any decent school will only spend maybe two classes on programming. that is 2 out of the 30+ required for a BS degree. Same with the art department, no decent school would waste four years teaching about brushes and pens, that is something the students are expected to figure out on their own. Same with English majors, they don't waste time on spelling and punctuation.

So Eric is right also. Computer science education should teach computing at both the theoretical and practical levels. Programming is one part of computing. Computers and the electronic technology is another part and then there is a large body of mathematics.

Then there is another point. If you are going to write banking software you need to know about banking. Same thing if you are going to work on the flight control software for an airplane or the software inside a radar or even a microwave oven or the engine control in a car. Knowing just programming never enough.
 

lazydog

macrumors 6502a
Sep 3, 2005
709
6
Cramlington, UK
LOL! That's a good rant!
If it makes you feel any better, I've found that most of the guys like this aren't actually all that great as programmers. I think the I-know-best attitude can prevent a programmer from thinking openly and creatively about finding good solutions to problems. These guys attain certain domain knowledge and then try to apply it to every problem that pops up.

Well said!

Programmers who elect themselves as judge and jury on coding standards/styles are a bit dodgy too!

b e n
 

psingh01

macrumors 68000
Apr 19, 2004
1,586
629
Just learn Objective-C. You can get a book or just use the free documentation on the developer.apple.com site. It's what you'll need for the iPhone/Mac anyway. No point in learning C++ or Java first. Though it can't hurt to know those either.
 

Michael CM1

macrumors 603
Feb 4, 2008
5,682
277
I'm kind of in the same boat as the thread starter, but I do have mild experience in programming. I took all of a semester of it in college and HATED it. I had never done any before and they threw us into the fire of C in about a week. The lab instructor, while probably a genius, was some grad student who had the thickest Chinese accent on the planet and still didn't grasp a lot of the English language. THAT DOESN'T HELP A FRESHMAN OUT MUCH.

Alas, 5 years later I get out of another university with a journalism degree. I ended up having to take some programming logic and BASIC programming course at a tech school for a degree I got afterward. Now I don't remember a darn thing (aside from drawing Flowcharts in Word is uber-uber stupid and time-wasting) except for I learned a lot more starting with BASIC. It was like being sent down to rookie ball instead of being thrown into AA and told "hit that 90mph curveball!"

So to the point, I'd like to learn some of this stuff if for nothing else to just expand my mind. I have little desire to become a full-time programmer because of how put off I was in that first class. But I would like to design this and that little app for Mac OS X and iPhone just to say "Oooo, neato." I have about zero desire to ever build a Windows app for the reason one of you posted: You have to want to do something to program for it. Windows is a DOS-based POS that is what happens when you try to please everybody and be backward compatible for eternity. Mac OS X is what happens when you try to create new things that people really want and eventually let them know "yah, that was nice 10 years ago. But seriously, we figured out how to do it better since then." Hence my delight at the death of Classic.

So again to the point, I'd like to develop some stuff for Mac and iPhone, but I'm a little lost where to start. After reading some posts, I think I'm going to try C or Object-C (which I had never heard of) since I'm just doing this on my own time. I'm going to have the major issue of freeing up space on my MacBook Pro before I start this. You can't do squat with 6GB free.

So basically if anybody has advice, throw it my way!
 

Michael CM1

macrumors 603
Feb 4, 2008
5,682
277
Eric is wrong. If the university is worth anything at all they will NOT wast time teaching computer science students the "technology of the day" Any decent school will only spend maybe two classes on programming. that is 2 out of the 30+ required for a BS degree. Same with the art department, no decent school would waste four years teaching about brushes and pens, that is something the students are expected to figure out on their own. Same with English majors, they don't waste time on spelling and punctuation.

I totally agree with you on the teaching bit. I'm an editor because I am so darn nitpicky at style and spelling stuff. But I didn't learn that from college. They spent most of their time teaching people how to write for whatever you wanted to write for (newspaper, magazines, TV, radio). After surviving all that, the most annoying thing on the planet is seeing people who either didn't pay attention or just didn't learn a darn thing.

Writers should know boring writing when they read it. Artists should know dull art. Programmers should know worthless software. I think my school did a great job in the journalism department, but the experience I had at two different big schools in programming was horrible. It was pretty much a lot of wasted money. Too bad the Internet wasn't as big and bad as it is now. I probably could've learned more from message boards than I ever did from the stuffy books of that day.
 

Evangelion

macrumors 68040
Jan 10, 2005
3,376
184
I'm in the same boat. I have taken few programming-courses back in the day, but I have forgotten 99% of it. I have a specific need for a simple iPhone-app, and instead of expecting others to write it for me, I decided to see if I could do it myself. I looked around, and found this excellent tutorial on Objective-C programming. The guide assumes that you have no previous experience in programming.

Hope this helps :)
 

Cromulent

macrumors 604
Oct 2, 2006
6,812
1,100
The Land of Hope and Glory
Alas, 5 years later I get out of another university with a journalism degree. I ended up having to take some programming logic and BASIC programming course at a tech school for a degree I got afterward. Now I don't remember a darn thing (aside from drawing Flowcharts in Word is uber-uber stupid and time-wasting) except for I learned a lot more starting with BASIC. It was like being sent down to rookie ball instead of being thrown into AA and told "hit that 90mph curveball!"

BASIC really is an incredibly poor first language to learn. You pick up some very bad habits that you will just have to unlearn later on anyway.

Don't forget that most of the older generation probably started programming in assembler. C is actually a high level language and is one which just about every other main stream language is based on. Take the time and learn Objective-C.
 

Eric5h5

macrumors 68020
Dec 9, 2004
2,494
604
You know what I can't stand? I can't stand these self-important, elitist software programmers that huff on their finger nails as if they walk on water.

That's nice, but what does it have to do with this thread? People were basically saying "If you're starting from scratch, learn the basics rather than the syntax, and plan on taking a while before you get good at it." Which is true.

Anyone can code, anyone can become a programmer.

Not, alas, in the real world. I've seen people struggle with programming for two years and they still don't get it. There are self-important jerks in every profession...programmers hardly have a monopoly on that by a long shot....

--Eric
 

nokq

macrumors member
Aug 17, 2003
47
0
Eric is wrong. If the university is worth anything at all they will NOT wast time teaching computer science students the "technology of the day" Any decent school will only spend maybe two classes on programming. that is 2 out of the 30+ required for a BS degree. Same with the art department, no decent school would waste four years teaching about brushes and pens, that is something the students are expected to figure out on their own. Same with English majors, they don't waste time on spelling and punctuation.

So Eric is right also. Computer science education should teach computing at both the theoretical and practical levels. Programming is one part of computing. Computers and the electronic technology is another part and then there is a large body of mathematics.

Then there is another point. If you are going to write banking software you need to know about banking. Same thing if you are going to work on the flight control software for an airplane or the software inside a radar or even a microwave oven or the engine control in a car. Knowing just programming never enough.

Getting a computer science education gives you a foundation to build on and a very broad one at that! It's meant so that you can enter the field of engineering and start out. With a foundation you can build your experience and skill level up. Just getting a computer science education won't do that for you. After school, it takes hard work, time, determination, and dedication. I think the poster has to realize that.

So the poster is not disqualified if he doesn't have a degree. But he sure as hell better be ready to put forth some serious effort. I laugh at friends my who claim they plan to run a marathon with little or no training. The same applies here. Are you sure you know what your getting into?

The kid that unlocked the iPhone out on the east coast with a software only solution was barely out of high school. He had guts, smarts, and was methodical. He'll go on to do great things, I'm sure. Best of luck to our original poster. I started programming myself at 13. I've turned something that I loved to do into a career and I'm already 27. Its gonna be a roller coaster of a ride for you. If you love it, you'll easily be able to do it day in and day out. :)
 

Michael CM1

macrumors 603
Feb 4, 2008
5,682
277
BASIC really is an incredibly poor first language to learn. You pick up some very bad habits that you will just have to unlearn later on anyway.

Don't forget that most of the older generation probably started programming in assembler. C is actually a high level language and is one which just about every other main stream language is based on. Take the time and learn Objective-C.

That's what I have realized after looking at a few threads on here. I really remember very little about BASIC or C, so it's not like I have any bad habits to forget. Shoot, I took a Cisco router programming course years later and can't remember the first thing about it.

So what I will ask is:
1) What's the best way to start with Objective-C? I found a little info at Apple's development center.

2) Will Xcode allow me to develop stuff using this language? I remember needing a C compiler, and it would do both C and C++.

3) If someone wants to explain the relationship between programming languages, Xcode, and Cocoa, I'd love to hear it.
 

admanimal

macrumors 68040
Apr 22, 2005
3,531
2
Anyone can code, anyone can become a programmer. It all depends on your ability to learn and your determination to do so. Good luck.

This is a generic statement that can be said about virtually any field/profession. Given a realistic amount of effort, however, -not- everyone will be good at programming (or any particular job that doesn't come naturally to most people).

As others have pointed out, the fact remains that certain individuals have a way of thinking that predisposes them to being better at programming than others. These are the people who are likely to succeed at it with a normal amount of effort. This is also true for most any profession.
 

MacsAttack

macrumors 6502a
Jul 2, 2006
825
0
Scotland
That's what I have realized after looking at a few threads on here. I really remember very little about BASIC or C, so it's not like I have any bad habits to forget. Shoot, I took a Cisco router programming course years later and can't remember the first thing about it.

So what I will ask is:
1) What's the best way to start with Objective-C? I found a little info at Apple's development center.

You've had some exposure to programming. So even if you remember virtually nothing then at least you still have been exposed to some of the fundamental concepts.

Honestly? The best way to start is with a good book. There are some sources out there on the net (Google is your friend), such as...

http://www.otierney.net/objective-c.html

..but they are a little short on introducing the concepts behind what they are doing and are often aimed at people who know how to program in other languages.

The best book I've found is Programming in Objective-C - Stephen G. Kochan - ISBN 0-672-32586-1

But that will only get you into Objective-C. From there you have to use more books and/or the notes and examples provided by Apple to get a handle on Cocoa (more of that later)

2) Will Xcode allow me to develop stuff using this language? I remember needing a C compiler, and it would do both C and C++.

Just like C++, Objective-C is a Superset of C. That is you can use straight C code and get it to compile because Objective-C (or C++) are built on top of C . However, using just C is missing out many very powerful features of Objective-C, and it is just these features that you will be wanting to use when developing iPhone applications. See 3.

3) If someone wants to explain the relationship between programming languages, Xcode, and Cocoa, I'd love to hear it.

OK...

Programming Languages - These you have met before. C is a programming language. C++ and Objective-C are Supersets of C - they use C, but add some more features. In there simplest form, a programming language is a "dialect" that allows a task (or series of tasks) to be defined in logical and unambiguous form (though some of the weird code i've had to deal with is far from unambiguios :rolleyes: ).

Xcode - This is what they call an IDE - Integrated Development Environment. While it is perfectly possible to run the gcc compiler directly from a terminal command line, the complexity of a modern programming projects and the plethora of tools with which you are expected to deal with have prompted the evolution of shell programs that consolidate things. So the IDE is the one stop shop. You can manage files, debug code, edit files with a context-aware editor. X-code (interface builder) is Apple's answer to MicroSoft's Visual Studio IDE. You use Xcode to write and debug your Objective-C code.

Cocoa - This is an API - Application Programming Interface. It essentially is a library of pre-written Objective-C that "does stuff". For example you want to select a file for your program to open. You could write the code to pop up a dialog and then add more code to navigate the file structure. Or you could use the pre-packaged Cocoa API call that gives you a standard OS X file dialogue. When you look at any application that runs on OS X's graphical interface you are looking at code that was written to use the Cocoa API.

So the three are interconnected. You use Xcode to write Objective-C programs that use the Cocoa API to give you nice fluffy OS X (or iPhone) style interfaces to your applications.

Knowing Objective-C is not enough for OS X software development. You also need to master the Cocoa APIs. Apple provide a lot of documentation, but again the best place to start is another book...

Cocoa Programming for MAC OS X - Arron Hillegass - ISBN 0-321-21314-9

... This book also has an Objective-C crash course, so it may be possible to get away without Kochan (or other similar publications). Note that the revised third edition of Hillegass is apparently due out soon.

May be worth checking out Podcasts. If there isn't one dedicated to Objective-C and/or the iPhone yet it is probably only a matter of time. There will be lots of general podcasts there already. Even if no Objective-C material is available, they are still going to cover some important fundamentals. Getting your head round the concepts of object-orientated programming and memory management is worth while grounding.
 

MacsAttack

macrumors 6502a
Jul 2, 2006
825
0
Scotland
As others have pointed out, the fact remains that certain individuals have a way of thinking that predisposes them to being better at programming than others.

That is because good programming goes beyond science. It is an art. :D

Brutal hard truth is that there is no substitute for experience. College and University education can provide the foundations, but it is only when you start work coding day-in-day-out that you really learn to program :p

I went through the mill - got my degree. But that was some time back. I end up dealing with three types...

1. The snot-nosed punks who think they know everything - and I end up having to clear up their mess after they depart the company.

2. The newbies who are so green that they are still damp. There is usually hope for these if they can stick it out for the first few months and find their feet in the real world. At which stage they are well on the way to becoming bitter and cynical software developers. Weird thing is, it is only when working with them that you realize just what all those years of experience gives you. The 'obvious' solution - isn't. So you go back and talk them through the process of how it is derived. That's one of the ways they learn the job.

3. The hardened professionals. These are the ones who know what they are doing right off the bat. Problem is, you may end up dealing with a snot-nosed punk who bailed from their last post (and the one before that, and the one before that). On paper they look good enough to be mistaken for a hardened professional, but in reality...
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.