Help please, I'm so confused about how to start learning programming!

Discussion in 'OT Technology' started by nish81, Apr 21, 2007.

  1. nish81

    nish81 OT Supporter

    Joined:
    Jul 6, 2006
    Messages:
    11,182
    Likes Received:
    0
    Location:
    london
    I've been thinking about this for ages and i just cant decide what to do. right now im giving myself 4 options. i have practically no experience with programming. ive learnt the very basics of python already so i know about if-else structures and classes and functions, and basic stuff but nothing GUI or advanced.

    im thinking either i try flash, python, java, or c++

    i know flash isn't really programming, but it'll get me producing content that's accessible to people straight away with a minimum of knowledge. but i also want to try proper 'programming' so I'm not quite sure if i should do it.

    then there's python, but it's not accessible to lots of people, and accessibility is very important to me.

    java is good because it has a nice structure, but it's just so sllooow and hard to make actual 'applications' with it, and it's not really good if i would get to the stage of making big applications with it?

    c++ is very accessible and has the 'programming' in it, but I'm not sure if it's compatible fully with macintosh as well as java, and also it's not as 'nice' a language as java is, if you catch my drift.

    help please :o
     
  2. agent0068

    agent0068 OT Supporter

    Joined:
    Jun 28, 2002
    Messages:
    39,833
    Likes Received:
    0
    first off, your worries about c++ not being as "compatible" are unfounded-- c++ is an ANSI standard and is the same where ever you go.

    what's hard to discern from your post is what it is you intend to actually do. if your goal is simply learning a serious programming language for the sake of it, then c++ seems like a fair choice to me. but by the same token, you're talking content and flash--are you trying to make web sites or desktop apps? or are you just happy to learn whatver you can at this point?

    you mentioned already doing some work with java? if so, i'd say keep going. you don't sound like you're at the stage where you need to worry about "big applications" or anything like that yet and it in no way locks you into java forever more. as you do this more, you will not feel tied into any particular language.

    you mentioned that you "know about if-else structures and classes and functions"--does this mean you've read a thing or two or that you have actually written code employing these features? if the former, you need the latter.

    finally, a book i recommend to many people new to software development is "the absolute beginners guide to c." it's hard for to gauge your level from this post, but i'm guessing it would be a worthwhile read for you as this is a very conversational, friendly text.
     
  3. ez4me2c3d

    ez4me2c3d Cold Member

    Joined:
    Sep 19, 2003
    Messages:
    1,836
    Likes Received:
    0
    Location:
    Minneapolis, MN
    Great reply^^

    Digg++

    Also, I just want to point out that I started learning with MS QBASIC and now I cannot for the life of me grasp the idea of classes.

    Objects on the other hand, I get. I have object string and I can get its length with string.length or wahtever or turn it backwards with string.reverse.

    So my point is, that I have no point I just wanted to join the convo as a fellow programmer...albeit a crappy one.
     
  4. hurleyint1386

    hurleyint1386 Someone has sand in their vagina

    Joined:
    Jan 6, 2005
    Messages:
    3,687
    Likes Received:
    0
    Location:
    Rochester, NY
    Personally, I do C++ programming (with a variety of web languages). I use GCC/G++ on my mac and love it. I never use VisualStudio. I have no idea how to use it haha.

    Pragramming crew signing in?
     
  5. nish81

    nish81 OT Supporter

    Joined:
    Jul 6, 2006
    Messages:
    11,182
    Likes Received:
    0
    Location:
    london
    So i could write one program, then compile it on a mac and on a windows without changing anything and it would come out exactly the same? assuming the program was written in c++ - and it would run well under both OSes?

    Well, I'd be more focused on desktop apps, but I'm just trying to learn whatever I can at the moment - I'll forget about flash, I want to learn actual programming. but I'm trying to learn something for the long term, a language that will be useful to me in windows AND mac when I learn it, more so with making applications than anything else. unless once I learn any language it's easy to pick up another one?

    well, I've already written VERY BASIC things with all three languages - very basic being if-else stuff and making objects with functions and stuff :o so I kinda get the idea of how bigger apps would look.

    you say I wont feel tied into java; so once I learn it, it'll be easy for me to pick up c++? and vice-versa.

    I've written code with them, but very simple code. still, code with them.

    I'll look at the book, thanks for the idea :bigthumb: one question though, wouldn't it be better to look at a c++-based book? object oriented progrgamming and all that?


    I guess i have two main questions at this point. firstly, which would be better for me two use on BOTH windows and mac, without changing the source code - java or c++? i.e. the ideal would be writing just one source and then compiling it on a windows compiler and a macintosh compiler. this links to my second issue, which is performance for the long term - if i learn a language i want it to be useful later on, (unless its very easy to learn one after learning the other). so are both java and C++ useful for writing proper applications on both macintosh and windows?


    thanks for the awesome reply :bigthumb: :bigthumb: :)

    hurley, what's G++? and GCC? :hs:


    programming crew :wavey: (or wannabe programming crew)
     
  6. hurleyint1386

    hurleyint1386 Someone has sand in their vagina

    Joined:
    Jan 6, 2005
    Messages:
    3,687
    Likes Received:
    0
    Location:
    Rochester, NY
    GCC is a compiler for Mac. check out http://gcc.gnu.org and install it. Then you compile the code using the terminal. i personally think it's one of the best compilers. you can use it for C, C++, Java, and other languages too (check the site for other languages)
     
  7. nish81

    nish81 OT Supporter

    Joined:
    Jul 6, 2006
    Messages:
    11,182
    Likes Received:
    0
    Location:
    london
    :bowdown:

    although, i see that i have to install/compile it myself...am I okay going with the binary that comes with the xcode package on the mac osx dvd? that seems to have a lot of programming tools :o
     
  8. hurleyint1386

    hurleyint1386 Someone has sand in their vagina

    Joined:
    Jan 6, 2005
    Messages:
    3,687
    Likes Received:
    0
    Location:
    Rochester, NY
    i believe that it does include the package for it instead of comiling it, although it's not hard to compile. do you know anything about the terminal?
     
  9. agent0068

    agent0068 OT Supporter

    Joined:
    Jun 28, 2002
    Messages:
    39,833
    Likes Received:
    0
    as long as the code you write is pure C++. once you start pulling in other libraries and other pieces of code, you can start making it less likely to be compatible or easily ported.

    a common way around this is to be very disciplined about segmenting your code. one such approach is called MVC--Model View Controller. the idea is that your core base of code (the model) is kept as generic as possible so that it is easily ported to other platforms. then there's the view (the user interface, for instance). this part is likely to be platform dependent (e.g. using cocoa for mac stuff or .net for windows stuff) and not easily ported or not worth the effort to keep it easily ported. the controller is the glue between the model and the view and how portable you keep that is another story.

    in all likelihood, for a substantial (desktop) app, you're not going to have 100% portable code, but maybe i'm a pessimist.

    many languages have a lot in common, so once you get good with one, you shouldn't have much trouble picking up others. for desktop stuff, you'd probably best stick with java and c-based languages (c, c++) for the time being.


    the best way to learn is a lot of practice. i've been writing software for nearly 10 years now and i still find that there's a lot to learn. write small utility programs for yourself and just see where they go. they need not be destined for public release or to be the next big thing. and i promise, big apps, while still just lots of code, are truly a different beast compared to small ones. the first time, you just tend not to realize it until it's too late ;)

    start small and toy with things like having programs with preferences, windows, threads, etc. read up on data structures (e.g. stacks, queues, heaps, binary trees). knowing the syntax and core concepts of a language are one thing, but having some of the rigor of computer science behind it can really make a world of difference.

    it's hard for me to judge your knowledge of c, but really, c++ is c with more stuff, and solidifying your knowledge of c is a good thing. i don't know of any good c++ books off the top of my head, but i think c is a good start. get solid with pointers and the like ;)

    if your intent is a desktop app with a GUI and all the usual glitz, probably java for the time being.

    while java is not necessarily quite as speedy as c++-based code, i don't think that should be your focus just yet. it's difficult to optimize something that doesn't exist yet. at this point, it would be more productive for you to focus on core concepts rather than syntax and language details. e.g. learning about good practices in object oriented programming and some basic data structures and algorithms. at the end of the day, regardless of language, these are the common things that are always there.

    almost every language you learn will be useful later on in some way or another. you're not cornering yourself with either of these at this point, i promise.

    glad to help :)
     
  10. agent0068

    agent0068 OT Supporter

    Joined:
    Jun 28, 2002
    Messages:
    39,833
    Likes Received:
    0
    installing xcode will install gcc and g++. you can also have it install all the java stuff as well.
     
  11. nish81

    nish81 OT Supporter

    Joined:
    Jul 6, 2006
    Messages:
    11,182
    Likes Received:
    0
    Location:
    london
    yes, its the UNIX command line thingy. don't know the name for it, but I use it when I want to encode things with lame :o


    :wiggle: awesome


    :bowdown: :bowdown: :bigthumb: thanks for the help :wiggle: I have no further questions :o
     
  12. nish81

    nish81 OT Supporter

    Joined:
    Jul 6, 2006
    Messages:
    11,182
    Likes Received:
    0
    Location:
    london
    wait wait hang on, call me stupid, but I installed xcode and it took up about 3 gb of my space, and now I can't find the IDE that's shown on the apple site...what's it called? and where do I find it? :o


    edit: nvm. found it :hs:
     
    Last edited: Apr 22, 2007
  13. babygodzilla

    babygodzilla I love rice

    Joined:
    Nov 5, 2001
    Messages:
    3,108
    Likes Received:
    0

    :wtf: this is so wrong on so many levels i dont even know where to begin.
     

Share This Page