Urban75 Home About Offline BrixtonBuzz Contact

Beginning Programming - Advice Required

gurrier said:
If you can't construct an arbitrary Turing machine from J-K flip-flops, you're not worth it.

Pah.

Lego.

That's the way we always used to build our Turing machines...
 
most programmers are hobbiest
Who here actually on urban 75 makes a living from coding?
i may be wrong, designers tend to get more of the money and credit
A designer is like a architect, he does not care weather the ceiling leaks or the door doesn't fit into frame.

Builders like coders have to do all the hard work of getting the problem working and a designer draws the plan for everything.

I may be completly wrong, its what i have heard and guess.
 
peppery said:
I want to start to learn to program but I don't have a clue where to start. Do any of the programmers out there have any advice about what language I should start with, what software to use, what the best books are??

Any language with a programming editor that supports code prediction/intellisense. You'll learn your way round the code 10 times faster that way.

Other than that just get stuck in, find and existing application and hack about with it.
 
lobster said:
most programmers are hobbiest
Who here actually on urban 75 makes a living from coding?
i may be wrong, designers tend to get more of the money and credit
A designer is like a architect, he does not care weather the ceiling leaks or the door doesn't fit into frame.

Builders like coders have to do all the hard work of getting the problem working and a designer draws the plan for everything.

I may be completly wrong, its what i have heard and guess.
I make money coding, and so do a fair few other people on here. I'm a software engineer, sitting on the blured line between programmer and analyst/designer. To be honest, I wouldn't use your analogy for designers as they're usually quite good, given the analysis that's performed. In my experience, many code on the projects they also design on. The difficulty is that requirements change quite quickly, and it's hard to keep up if your sales people keep moving the goalposts.
 
laptop said:
Pah.

Lego.

That's the way we always used to build our Turing machines...
You had lego? I would have killed for lego. I had to remember all the values on the tape and do the whole thing in my head.
 
fractionMan said:
I make money coding, and so do a fair few other people on here. I'm a software engineer, sitting on the blured line between programmer and analyst/designer. To be honest, I wouldn't use your analogy for designers as they're usually quite good, given the analysis that's performed. In my experience, many code on the projects they also design on. The difficulty is that requirements change quite quickly, and it's hard to keep up if your sales people keep moving the goalposts.
i pretty much agree with that, although it's the manager that moves my goal posts, not the sales people. and you would have though that a manger that was your coluege a few years ago would have a bit more sence. :rolleyes:

and yes, coding provides me with roof over my head and food on the table and so on
 
lobster said:
most programmers are hobbiest
Who here actually on urban 75 makes a living from coding?

Another professional -- the mix here is about 50/50... I'm more a pure software engineer but in previous roles I've to more design (ie, frontend stuff...). At the moment I'm doing backend which is easier as you only have to watch out for shifting goalposts...
 
I also code for a living, though the language I write in is not OO or anything like that (it's pretty 70s really). Most of the language learning that I do is hobby stuff. I use Perl at work occasionally but that's it, and I even learnt that to do web toys originally with no thought that it might be useful professionally.
 
Chorlton said:
No, you are right

its a light and delicious snack you can eat between meals *without* ruining your appetite.

well spotted
:confused:

It's a platform / framework consisting of various libraries / communication protocols / bits and bobs, with a high level of integration with several IDE's. It supports various different languages (VB, C#, j++, C++). I assume that you were conflating it with C#, but your 'come back' above makes me think you still haven't grasped this.
 
lobster said:
most programmers are hobbiest
I'd say about 1% (a bit more if changing a line in somebody else's PHP script counts).

VB is by far the most programmed in language in the world and there can hardly be too many people out there who do that for fun.
 
gurrier said:
:confused:

It's a platform / framework consisting of various libraries / communication protocols / bits and bobs, with a high level of integration with several IDE's. It supports various different languages (VB, C#, j++, C++). I assume that you were conflating it with C#, but your 'come back' above makes me think you still haven't grasped this.

No, i realise its a framework, but for the purposes of this conversation i thought it would be assumed that i meant something within the .NET framework - thats all...
 
Chorlton said:
No, i realise its a framework, but for the purposes of this conversation i thought it would be assumed that i meant something within the .NET framework - thats all...
Oh ok. A#? (Ado.net) :)
 
so a analysis looks at the code and advices on improvements if there are any?

"I'd say about 1% "

so all the free software and open source software is just one percent ?
 
lobster said:
so a analysis looks at the code and advices on improvements if there are any?

If you're asking what a systems analyst does, then no.

The interesting bit is all to do with defining what the problem is, so that coders can get to work with some hope of success in solving it.

If you're doing something like large databases (terabytes and up) it can get quite mathematical.

A lot of it, though, is interfacing with Men in Suits in an ongoing mission-definition heuristic jargon deployment scenario.
 
Alot of free software and open software coders are supported by donations which i forgot to mention, the donations are voluntary and in my mind diffrent to actually getting paid to code.

Obviously there is a lot of software thats not suitable for the pc , like airline reservations systems, financial institutions, cockpit controllers, military hardware, medical imaging and many other inhouse software...

I guess i answered my own question
 
There are many different languages for different purposes and once and once a language is understood the others will be much simpler. Myself came from the C route and had immense problems understanding Java, it's like when being right handed to learn to use the left hand for everything.

If you want to go for net based appliactions than be prepared to learn and use multiple languages at once and technologies/architectures.

PHP is very easy to start with, petty I can't use it. I had a look at Phyton and tutorials are fun, easy to pick up.

The big trend is XML, Java, web services and database access. Would be maybe overhelming to start with, but on the other hand there are plenty of examples provided by big names like amazon.

Only download netBeans and have a go at it, best it's free, has lots of working examples and a huge code base. In my exerience it is always better to start with working code and play around with it to a degree till its understood.

More years working as a programmer, job roles are becomming very blurred for us and I can't really tell what my job title is, only that I need to come in on weekends more and more and free time is becomming rare, good coding practise as well.

Academic concepts and good practise don't work well in real world anyway.
 
cybotto said:
Academic concepts and good practise don't work well in real world anyway.

Maybe. But the question was about learning and if you start off with good practise your eventual practical output will be more robust and maintenance of it will be possible.
 
Mean both in combination that is the reason why there is an AND otherwise it would be OR.

Academic good practise but lots of time inefficient. Never would read good practise from university books or lecture notes, waste of time. Four lines of comments for every instruction. A programme should be self explaining.

When I see a book starting along that lines OR using foo, foo, poo all the times

a = "hello";
b = "world";
c = 15;
d = someObjcts;

But than more down what is a again? A number or some text or whet again?
 
cybotto said:
Mean both in combination that is the reason why there is an AND otherwise it would be OR.

Academic good practise but lots of time inefficient. Never would read good practise from university books or lecture notes, waste of time. Four lines of comments for every instruction. A programme should be self explaining.

When I see a book starting along that lines OR using foo, foo, poo all the times

a = "hello";
b = "world";
c = 15;
d = someObjcts;

But than more down what is a again? A number or some text or whet again?
Code without comments is like a map without names on it. Not very useful if you're not already familiar with the place. Code with too many comments is just as bad. It's not too hard to comment the bits that need explaining, is it?

I'd say that an academic background is of benefit to coders, but not necessary. There's plenty you learn that is difficult to apply to the real world but forms the basis for good practice. Good practice == good maintainable code == more time efficient in the long run.

Alot of free software and open software coders are supported by donations which i forgot to mention, the donations are voluntary and in my mind diffrent to actually getting paid to code.
Much less than you'd think. The only tow I can think of are the apache and mozilla groups. Even then, they have few paid up coders.

Big open source projects are often funded by either (a) a big corp that wants to develop some competing software (openoffice/sun or eclipse/ibm) or (b) a corp that makes money supporting said software (various linux distros) or (c) some government body/academia (shibboleth)

There are loads of little homegrown apps, but they tend to be smaller projects maintained by a single person as a hobby.
 
cybotto said:
Academic good practise but lots of time inefficient. Never would read good practise from university books or lecture notes, waste of time. Four lines of comments for every instruction. A programme should be self explaining.

Dunno about you but I was marked down bigtime for code like that at University. And marked up for comments... Sure you're reading the correct textboooks...? Learning to program is different from learning set patterns/alogrithms...

(And anyway your IDE should be able to tell you what type a is... :D )
 
ive heard "look at code samples and try and pick up on it" i personally think a grounding in a programmes syntax as well as understanding programming concepts is a must.

Learning a natural language by copying somone is what i learnt when i was a child, then it followed by english classes that explained the "i before e" " full stops, commas, " "capital letters for names and places" , i have to admit i did not pay too much attention as the year went by in english lessons, and at times my grammer is not great. I can read and write to a standard.

The big diffrence between natural and programming languages are of course that natural languages are to be heard only, of course misunderstanding does happen.
Programming languages instruct a computer what to do, copying any code from somewhere, could brake your computer (copying a hardware virus source code , i believe virus can destroy hardware, correct me if i am wrong) if you don't understand some conceps of programming languages and the syntax.

This thread should be made permant , as it turned out a few very usefull questions, that have answered not only my doubts by many others.
 
lobster said:
Programming languages instruct a computer what to do, copying any code from somewhere, could brake your computer (copying a hardware virus source code , i believe virus can destroy hardware, correct me if i am wrong) if you don't understand some conceps of programming languages and the syntax.

The most common way of crashing a computer through programming mistakes is when doing concurrent stuff. Yaaay, lets keep launching threads (or even worse, processes) without bothering to stop them. See how long before everything grinds to halt*.

In practice damaging hardware through programming is quite rare now. Oh, and if you don't use MS you won't see a virus...

*But any decent computer lab should minimise this....
 
jæd said:
The most common way of crashing a computer through programming mistakes is when doing concurrent stuff.
The olde infinite loop trick can still grind a web server to a halt if you're not careful.
 
peppery said:
I want to start to learn to program but I don't have a clue where to start. Do any of the programmers out there have any advice about what language I should start with, what software to use, what the best books are??
Having programmed many languages over the last 15 years (and I'm only 31 before the granddad accusations start!), and given the state of the programming industry as of today, my recommendation would be to learn programming with Java.

There are many reasons for this. Here are a few:
  • It's free. Download the Java SDK (current version 1.5) here: http://java.sun.com/j2se/1.5/
  • Ignoring the thousands of libraries and extensions, the core Java language is fairly simple.
  • It doesn't matter if you use Windows, MacOS or Linux
  • It's object oriented. Don't bother learning a non-OO language if you want a career in programming in the next few years.
  • It's INCREDIBLY popular. If you get stuck, Google will give you the answer.

I agree that both Python and Ruby would also be good starter languages, but for me they won't be as easy to get to grips with as Java and the number and quality of beginners books for these languages isn't as good.

Given this, here's a very quick action plan for starting your Java journey (assuming you're on broadband!):
  1. Download the Java SDK (that's Software Development Kit, if you didn't know) from the link above.
  2. Download a simple text editor which has Java syntax highlighting (check out jEdit --> http://www.jedit.org), or if you're feeling really brave, download the Eclipse IDE (Integrated Development Environment). I'd seriously advise against the latter, since without knowing anything about programming, the monumental size and complexity of Eclipse will probably overwhelm you. There's a plug-in which will allow jEdit to compile your code as well. Other people might be able to recommend better mini-IDEs.
  3. Buy a beginners Java book such as http://www.amazon.co.uk/exec/obidos/ASIN/0596008732/ref=br_lf_b_4/026-8201995-3511637
  4. Bookmark the Java API (Application Programming Interface) documentation --> http://java.sun.com/j2se/1.5.0/docs/api. You'll refer to this a lot.
  5. Start writing some programs! Work through the examples in the book. Start by writing "Hello, World" (yes, really) to get the hang of a program writing output, then write a program with input as well as output. Next look into file I/O and so on. Once you've covered these programming essentials, learn about classes, interfaces and inheritance.
  6. Read, read, read. The web is chock-full of resources for programming, from tutorials to blogs to free books. Use Google as your tool of choice; type in questions you have and things you want to know.

Hope this helps and good luck!
 
of course you know what you are talking about salaryman, but OO-languages are only for high level programming, ok the D programming language has introduced OO , so far that language is only in beta.

If i wanted to make a device driver, that impossible in OO or to make a boot loader or bios without asm its impossible, obviously someone who wants to create either of them would have a decent knowlege of programming , and not ask the question, but i just wanted to point out that non OO programming is still used.

A majority of jobs as you rightly know use hll's anyway.
 
I agree with salaryman, it's maybe not worth to learn an not OO language first in order to learn it as a goal.

Thinking in Java is a good introduction covering lots of ground in a community based approach. Best is it's free. Myself I'm not a big a fan of Java but it's where the bread is in longer terms and has the right philosophy.

Somehow we have lots of communication going on between us as well, you wrote this, how can I reuse it? Plug it in and heya it works or maybe has a bug for my purpose (bugs are everywhere), changing some lines and is getting a robust class what everybody can use and maybe enhance to a perfection what no single mind is able to do. Sharing code with Java is very easy, gone the times when one person was only responsible for its own little project trying to hide its code and working on algorithms what already where out of, but since only seeing his own code this persons never knew his algorithm was out of date or not transportable for others. That is where good practise is comming from.

Some people are command line persons, some are IDE freaks. netBeans is pretty cool as IDE, especially when getting Looking Class to work on it (not in it yet), great vision and dreams, serious machine needed though.

Why I want to have device driver that when a new OS is comming out is has to rewritten again, what is when that programmer left? Which benefit I have when to upgrade to a new OS or to sacrifice my old graphics card? Or take an application which I can't use on a other system.

My tip is go for what you like. When you want to write some compression algorithms than go for it. Years ago people laughed about that, what a freak, that must be a looser. But now that is serious hot stuff, however these people need to provide an interface to Java as well and/or are making is available as class for others.
 
Back
Top Bottom