Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-

starting programming

Name: Anonymous 2007-11-20 19:14

i've taken a passionate interest in programming and yet i'm having trouble getting started. i've learned quite a bit of basic C# (written a half-done Notepad clone, an email spammer, and an IRC bot) but now i'm stuck. i'm also taking a java class in which i learn noting because of the slow pace and outrageous similarity to C#.

1. what kind of programs should a beginner try making to further his/her skills without overwhelming him/her self?
2. should i continue to program C# and java until i've mastered them, or should i take the time for c/c++ right away.
3. what sort of goals should a programmer keep in mind from the start?

Name: Anonymous 2007-11-20 19:26

1.  Something that's challenging, but interesting.  You don't overwhelm yourself with the difficulty of a problem unless you never really found it that interesting in the first place.

2.  Whatever.  This question's gonna get trolled so much, I don't even care.

3.  Do one thing at a time.  You'll never succeed completely, nor should you, but if you don't try you'll eventually overwhelm yourself with multitasking.

Name: Anonymous 2007-11-20 19:27

If you read through prog, you'll learn a few things.

READ SICP
http://mitpress.mit.edu/sicp/full-text/book/book.html

Watch the videos
http://video.google.com/videoplay?docid=5546836985338782440

THEN, bother your arse with C, C++, Haskell or watever.
cooldogebooks.blogspot.com - look in programming areas....

C# IS a pile of crap. java is good for learning the basics of Object-Orientated programming, but it's with Lisp(sicp) ASM and c/c++ that shit gets fucking DONE.

Anons usually wouldn't give links, so consider yourself lucky.

Name: Anonymous 2007-11-20 19:36

op here

why is lisp/sicp so important? i hadn't even heard of it before /prog/ :{

what's wrong with C#? i've found it very approachable and applicable

Name: Anonymous 2007-11-20 19:40

c# is only designed for a certain type of programming.
while lisp is a very low-level language, that other high-end languages build upon. Knowing the fundamental concepts of programming (read:DEEP programming), you can better learn higher end languages like c types.

Name: Anonymous 2007-11-20 19:41

>>3 java is good for learning the basics of Object-Orientated programming
That's not OOP.

>>5 while lisp is a very low-level language
That's just silliness.

Name: Anonymous 2007-11-20 19:44

okay...

so i'm going to finish my Visual C# 2005 Step by Step book and keep studying java

then read up on LISP

then should i learn both c and c++ or just one or the other?

where does asm come in?

should i ever bother with VB6 or VB.Net?

Name: Anonymous 2007-11-20 19:54

>>7
C# and java are both crap.  only thing they're good for is getting crap jobs.

lisp won't even get you a crap job.  i hear if you put lisp on a resume, companies actually start firing people instead.

learn c.  once you've got it down, just tack on a bunch of crappy OOP crap and you got c++ anyway.

asm looks like crap.  worthless unless you want to know how computers do crap.

anything with 'VB' in it is automatically crap.  it should be called VB.Crap on general principle.

Name: Anonymous 2007-11-20 19:58

is programming really so full of crap? :{

Name: Anonymous 2007-11-20 19:58

>>4

C# is a fine language for getting shit done in windows, and it's adopting more lisp-y features with every release.  It's got lambdas, now.  Don't feel bad for using it.  Just never, ever touch VB6 if you can help it.  I get paid to touch it a couple times a year and I still feel like a dirty whore with a raped ass when I do.

Name: Anonymous 2007-11-20 19:59

>>9

If you don't think programming is so full of crap, you've never worked on ENTERPRISE SOFTWARE with EXPERT PROGRAMMERS.

Name: Anonymous 2007-11-20 21:35

Name: Anonymous 2007-11-20 22:25

>>12
I think that website gave me AIDS.

Name: Anonymous 2007-11-21 1:26

>>1
Okay, serious answer time.

1. what kind of programs should a beginner try making to further his/her skills without overwhelming him/her self?

Do something that you'd actually use and preferably already  need.  Toy Projects never get done.  If you can't think of anything, replace some small utility program that you already use with something you write yourself.  Think file converters, upload/download utilities, etc.  Shit that actually does something you'd use.  It sounds like you're on this path already.


2. should i continue to program C# and java until i've mastered them, or should i take the time for c/c++ right away.

ABSOLUTELY LEARN NEW LANGUAGES CONSTANTLY!!!!  The earlier the better!  If you stick with one, you'll lock your thinking into an incorrect "one true way".  Definitely learn Lisp, the whole model with macros, first-class functions, and intro to functional style WILL give you a new perspective on programming.  Definitely learn C and enough ASM to read disassemblies in a debug session; this will teach you what's going on behind the scenes.  Definitely learn Erlang for how to do threaded/distributed properly and the joys of matching syntax; multi-core and distributed is the Next Big Thing.  Look at emerging languages, and try to see what the benefits, drawbacks, and rationales are of the decisions they made.  If you don't understand those, you can't properly decide what language to use for any given project.


3. what sort of goals should a programmer keep in mind from the start?

Your goal should be to finish the damn project before jumping to something else (keeping text files with notes around helps tremendously), and to make it do something useful.  Those tie for top priority.  Beyond that:

- Get used to writing comments and full documentation, you'll need it in a year (or a month) when you look back on things.  Spaghetti code is bad, make it clear.  Seriously, it won't run any slower 99% of the time.

- DON'T TRY TO OPTIMIZE until it's already running and only if it's too slow.  Guessing on optimization strategies too early, especially if you're a newbie, will kill you.

- Know what you're going to write before you sit down to code.  IE, DESIGN!  It makes coding a shit-ton easier than having to hack in changes later that you would have seen before.  Don't get caught up in super-detailed design, though, just enough to tell you what goes where and who calls what in your code.

- Get your code _executing_ as soon as possible.  When you write your core library/utility functions, make a main() that will run through them.  You'll catch a ton of stuff very early on, as well as get a feel for what's too cumbersome to use and needs to be redesigned.

- READ READ READ READ READ (also SICP).  Try to find algorithms or libraries that you can use.  Read wikipedia algorithm descriptions until you can understand them.  Don't be afraid of reading PhD theses; they're not that hard.  Buy books that are highly recommended; a ton more work and validation goes into quality books than any website.

Name: Anonymous 2007-11-21 2:36

>>4
Lisp and SICP are important because they'll help you reach SATORI and become an EXPERT PROGRAMMER. Yes, this is relevant to the topic and not just my way of saying "I've read SICP."

Anything .NET fails harder than Java.

Name: Anonymous 2007-11-21 2:55

>>14
too much USEFUL INFORMATION

Name: Anonymous 2007-11-21 3:58

>>9
please take the criticisms of /prog/ very lightly. 90% of all the people here are butthurt college graduates that couldn't satisfy any simple problem if it was already solved in pseudocode. basically the real way to learn is to not be afraid to make mistakes. this means that you shouldn't fear learning java, lisp, any .Net language or working with UML, XML or scalable enterprise code.

Name: Anonymous 2007-11-21 5:57

scalable enterprise code
I think you'll find that's a contradictio in terminis.

Also, .Net is never worth it. Other than that, essentially right.

Name: Anonymous 2007-11-21 6:39

>>1
I feel like posting a serious answer.

If you want to be serious about programming:
1. Google SICP.
2. Download and watch the SICP videos.
3. Read the SICP book.
4. Learn Python to get a more realistic, yet still very powerful tool to get your stuff done.
5. Learn C. While the language is OMG OPTIMIZED and unpractical for most things, it's pretty much a necessary skill to know and understand C.
6. Learn Haskell if you want to become a haskellFag, but it's not necessary.

DON'T learn Java. It'll kill your passion for programming. It's really a terrible language with a terrible API.

DON'T get obsessed with OOP. Objects are just one programming tool, like for loops. You don't do *EVERY-FUCKING-THING* with for loops, do you? Avoid languages which shove OOP up your ass all the time.

As for what to do? I suggest:
- A mini-Lisp (watch SICP, you'll understand).
- The shell tools you always wanted to have but didn't.
- Some work on files' metadata, such as some sort of portable database and interface to set metadata and select files by metadata or standard properties. Publish it here.
- Contribute to GPLv3 projects.
- Become an hero.

>>4
why is lisp/sicp so important?
LISP? Because it's the cleanest, purest language to work with, powerful for abstraction, and because 90% of these programming features "modern" languages are introducing (Python, Ruby, Lua, etc.) were features of LISP decades ago.

SICP? Because it teaches you how to think of processes properly, and is really interesting if you like programming. It'll teach you Scheme, a LISP.

what's wrong with C#?
- Too object-obsessed
- Needlessly overcomplicated
- Features leave something to be desired (although the latest version is much better than Java)
- Platform availability
- Microsoft faggot

But it's starting to look better every day. It's not nearly as bad as Java or C++.

then should i learn both c and c++ or just one or the other?
Learn C. C++ is a piss ugly language. Learn it after C, but only if you must. It's not like you'll want to work with it after you discover LISP.

where does asm come in?
Do you want to develop new OS kernels, very particular embedded systems, or hard hacks? No? Then it doesn't come in anytime.

should i ever bother with VB6 or VB.Net?
No! Basic is a terrible language that will get you used to every wrong thing. VB.NET is a bit better, but still mediocre.

is programming really so full of crap? :{
Depends on your definition of crap. It's crap for what programming is. But it's better than doing something else, isn't it?

What we call crap is due to enterprises and suited businessmen. Just avoid the "crap", and you'll love it. There are many awesome languages waiting for you. Scheme and other LISPs, Python and Lua, Smalltalk, Erlang, Haskell, Forth... All of these languages have unique features that can be interesting and delightful to learn and use. Just avoid the usual path of boredom or failure that Java and C++, and to a lesser degree C# and VB are.

Also, C# is starting to become not-crap. Wait until LINQ and other functional programming tools are widespread.

>>5
while lisp is a very low-level language
Whut

>>3
java is good for learning the basics of Object-Orientated programming
Whut

>>8
I like how this man thinks.

>>11
lulz

>>17
Lies. Okay, all jokes and memes aside, I do think /prog is a fairly competent bunch. For one thing, people here knows of languages centuries ahead of ENTERPRISE.

Name: Anonymous 2007-11-21 14:05

>>19
LISP? Because it's the cleanest, purest language to work with, powerful for abstraction, and because 90% of these programming features "modern" languages are introducing (Python, Ruby, Lua, etc.) were features of LISP decades ago.

A. Typing LISP is like typing MAC. Don't do it.
B. Smalltalk is arguably cleaner and purer, with abstractions that are nearly as powerful. You can't make it accept free-form syntax like in Lisp, but other than that's it's very powerful.

Name: Anonymous 2007-11-22 8:28

>>1-19

And /prog/ saved another soul.

Name: Anonymous 2007-11-22 9:06

>>20
A. I prefer to use LISP to differentiate it from Common Lisp. I know Lisp shouldn't automatically mean Common Lisp, but some people think so.

B. Smalltalk introduces a lot of concepts and things to deal with; a simple Lisp needs only half a dozen.

Name: Anonymous 2007-11-22 12:48

>>22
A. Your convention is obtuse.
B. No it doesn't. Smalltalk consists of: message passing. That's it. Lisp is full of special forms. The uncleanliness of Lisp's thoeretical model was one of the reasons Alan Kay invented Smalltalk.

Name: Anonymous 2007-11-22 12:48

>>22
>>23
GO THE FUCK BACK TO REDDIT

Name: Anonymous 2007-11-22 13:21

>>24
WHAT THE FUCK DO YOU MEAN I DIDN'T COME FROM REDDIT

Name: Anonymous 2007-11-22 13:43

why do you faggots love useless languages like LISP smalltalk and fagskell?

Name: Anonymous 2007-11-22 14:05

>>26
I love VB.NET. It allows me to be more productive so I can spend time with my hobby of programming Lisp and raping cats.

Name: Anonymous 2007-11-22 14:51

>>26
Actually, /prog/ doesn't love Smalltalk. I'm the only one who ever brings it up.

Name: Anonymous 2007-11-22 16:02

>>28
Lies. I bring it up every fucking time some fucker tries to promote Java as a decent OO language.

Name: Anonymous 2007-11-22 17:36

>>29
I haven't seen it. Maybe you don't spend enough time on /prog/.

Name: Anonymous 2007-11-22 18:02

>>29
J2EE is a decent OO language, that is unmatched in its field.

Name: Anonymous 2007-11-22 18:24

>>30
I think you don't spend enough time on /prog/. I have dedicated a whole browser window for /prog/ and check it dozens of times a day.

Name: Anonymous 2007-11-22 18:25

In after people suggest useless toy languages to make sure OP loses any fun he might find in programming.

Name: Anonymous 2007-11-22 19:47

>>32
I see every post in every thread that appears in /prog/. I would know.

>>33
HELLO, THEY CALL THEM TOYS BECAUSE THEY ARE FUN

Name: Anonymous 2007-11-22 19:49

>>34
I see every post in every thread that appears in /prog/. I would know.
Then it just must be that you haven't been here for very long.

Name: Anonymous 2007-11-22 20:59

>>35
Or it may be that you don't post about Smalltalk.

Name: Anonymous 2007-11-22 21:21

>>32
So, who's going to port navi2ch to work with /prog/?

http://navi2ch.sourceforge.net/

Name: Anonymous 2007-11-22 21:31

>>37
That could be interesting. Completely useless, but interesting.

Name: Anonymous 2007-11-22 22:10

There's something Emacs can't do?

Why not just package it as it's own OS? *Just add Unix kernel*

Name: Anonymous 2007-11-22 23:17

>>39
I could've sworn that I've already seen that. If not, you should jack it into its own LiveCD, as is the new craze.

emacs + apt-type thing and you're set.

Name: Anonymous 2009-03-06 11:56

The bitter broadcasts of them they ask   you are and   was very hard   to expose a   C interface for   use in D   No problem Compiles   to native Anyone   can run the   file you saved   my life thank.

Name: Anonymous 2010-11-25 12:34

Name: Anonymous 2011-02-03 4:28

Name: Anonymous 2011-02-04 12:05

Don't change these.
Name: Email:
Entire Thread Thread List