Coders, some advice plox.
‹ Previous12345
  • Yossarian
    Show networks
    Xbox
    Yossarian Drew
    Steam
    Yossarian_Drew

    Send message
    So, I'm considering getting out of teaching and have been thinking about what else I could do with myself, and one thought that keeps on coming up is learning how to code. It seems like something that I'd be quite well suited for, and something that may actually pay me a liveable amount of money. Of course, I'm a complete noob when it comes to this sort of thing, so I have many questions. Here are a few:

    FWIW, I like the idea of being able to create apps for iOS and maybe even create programs in OSX. What would I need to learn to be able to do these things? Are those skills likely to lead to employment? How transferable are they? Should I be looking at pinning down exactly what sort of thing I'd like to create before starting to learn this stuff? Are there other areas (other than Apple) that I should consider?

    Any and all advice is greatly appreciated.
  • 10 PRINT "YOSS"
    20 RUN

    YOSS
  • krs wrote:
    10 PRINT "YOSS"
    20 GO TO 10
    RUN

    YOSS
    YOSS
    YOSS
    YOSS
    YOSS
    YOSS
    YOSS
    YOSS
    YOSS
    YOSS
    BOOM
  • GO NORTH
    Come with g if you want to live...
  • Escape
    Show networks
    Twitter
    Futurscapes
    Xbox
    Futurscape
    PSN
    Futurscape
    Steam
    Futurscape

    Send message
    if plornt >= plornt:
        print "plornt"
    else:
        print "Yoss"
    

    Start (and possibly finish) here:



    And then go and sign up for a free course. Yes? You can still join quite a few courses that have finished. Do that, and then download or watch a few of their accompanying MP4 lectures. Active courses have their own forums, which remain live for a few months after completion.

    Find out if you enjoy it before thinking of a career. Because if you do want a career, you have to live and breathe programming until you reach a high level of competence.
  • Funny that, Yoss. I was recently thinking of giving up aspirations to code games as I just don't have time due to work and family life. And I was also thinking of changing careers from trusteeship to teaching!! FUNNY THAT!!!
    I am a FREE. I am not MAN. A NUMBER.
  • Yossarian
    Show networks
    Xbox
    Yossarian Drew
    Steam
    Yossarian_Drew

    Send message
    If you're looking for a job that offers you more time, I'd think twice about teaching if I were you. Teachers work stupid hours. They get long holidays, but in term time it's just crazy. Plus, the amount of stress that goes along with things like inspections is quite nuts.

    Anything else you can offer me re: my questions above?
  • Start simple. iOS apps are written in one (or a mixture of) of these languages
    - Objective-C, possibly mixed in with C/C++
    - HTML, CSS and JavaScript
    - Swift (their new language - don't know much about it)

    Objective-C and all the other C family languages are not decent beginner languages imo (edit: actually Obj-C is alright - it's quite experienced coders that seem to have problems with it due to some idiosyncrasies it has). C/C++ is widely used in industry but Objective-C is only used for iOS apps so you'll restrict your potential employability (more on this later).
    HTML etc is obviously opens up web coding stuff and is piss easy to get something up and running quite quickly. It's difficult and fiddly to master.

    Swift is meant to be a halfway house in terms of difficulty. It's going to be Apple's in house language going forward so if you're starting now and want to stay on that platform, it might be worth investigating that.

    They are language dependent but there are hundreds of learn to program books based around app creation that can take you from zero to competent over a couple of weeks of solid work.

    As for employability, any programming is a pretty good skill. You'll need to make a choice about whether you want to be more specialist (big bucks, fewer jobs) or generalist (fewer bucks, more options). I'd still class Objective-C as quite specialist despite the app boom.

    If you wanted a programming job two months from now, go away and learn C# on Windows, build a couple of small program's and start applying for junior dev roles.
  • Yossarian
    Show networks
    Xbox
    Yossarian Drew
    Steam
    Yossarian_Drew

    Send message
    Hmm, cheers monkey.

    Learning C# would be hampered by my not owning a Windows machine, but if I were to learn it, would it help me learn the other C languages? And could I learn it on Mac?

    Alternatively, if I were to start with HTML would that assist me in learning Objective C?
  • So, in a nutshell, if you want to be an Apple only guy learn either Swift or Objective-C. You'll probably need both at some point so it doesn't matter which and they're both using Cocoa which is really the main thing you need to learn and takes some time to cram into your head. The language syntax can be picked up quite quickly.
  • Posted that while you were posting yours. Will try and answer your questions when I get a sec.
  • I'd say the first thing you want to think about is whether you want to be front end or back end.

    Back end is all about the databases. PHP, SQL, MySQL and so on. There can be very interesting problems to solve in this area, and great PHP devs can earn good cash, and are always in demand. With the advent of so-called big data, database wranglers will continue to be highly rated.

    Front end is about using the back end (servers, web services such as payment platforms, user management, rights management, getting content from metadata managers etc) to present stuff to the users, so more what you're talking about: app dev. It seems more rock n roll but there are a lot more of this type of developer and to get good at it takes a LONG time, and you're usually better off with multiple levels of knowledge (i.e.: JAVA for Android, ObjC / Swift for iOS, HTML/JavaScript/CSS etc for web) if you want to be highly paid and employable.

    The interesting thing about coding is that the specific languages have their idiosyncrasies and specialities and strengths and weaknesses, but the core principles remain the same. Learning some BASIC would even help to start understand those principles.

    The other thing to remember about coding is that getting something up and running (just about) is one thing, getting it to work properly and "bug-free" is quite another. If you enjoy searching through haystacks for needles of bugs, then coding may just be for you.

    I'd say the best person to ask, out of the people you know, is probably Petey. When I interviewed him, he impressed both our back end and front end guys with his overall grasp of what coding is actually about, and how to approach it from a problem-solving, scalable, solutions-focussed perspective. He's in Hoxton now so just up the road from you. Take him for a drink, ask him what stupid fucking idea he got in his head to become a coder, and see if you feel the same.

    If not, become a project manager or even a product manager. No specific skills required. Those who can't code, project manage.
  • davyK
    Show networks
    Xbox
    davyK13
    Steam
    dbkelly

    Send message
    Above.

    I've written code for a living for about 17 years (up until about 6 years ago) - starting with COBOL, went through a Visual Basic and Oracle PL/SQL phase , ended up with active server pages (ASP is Microsoft's take on PHP). On the way I picked up the necessary skills in JavaScript, XML, XSLT, SQL and HTML. Missed the CSS boat though. Once you get a language under your belt others come easy - I've written code in several other languages for short periods along the way too.

    I now dabble at home with PHP , Java, BlitzBasic and even a bit of 6502 assembler.

    Any language will do to get started. Though I'd consider C or Java as they are platform independant. Starting with a language that doesn't require declaring variables as data types probably isn't a good habit to pick up.

    Java will have object orientation to deal with too - though I'm not sure if that would be a problem starting out as you will have no pre-conceptions. Going from non OO languages as I did is a bit of a jolt.

    From there you could hop to c# and c++ without too much pain - allowing you cover Microsoft and Android.

    PHP is a nice language too for web development. For modern presentation you will need HTML and CSS. A bit of Javascript for some interactivity on your web pages will be useful too. Don't confuse Java with Javascript - there are similarities but they are different - you will be able to pick it up if you have a language under you belt.

    Solid SQL will always be useful but that requires sound relational database knowledge too. Good SQL skills will be relevant no matter what the database. Oracle, SQLServer or open source. (Java programming will be useful with Oracle as you use that to write code inside the database).

    I have tinkered with Apple app building. It's all a bit contrived and I found it dissappointing - it didn't feel like a fresh canvas to me. But that will be because it is proprietory and you are expected to build apps in a certain way. I experienced it once before with Oracle Forms development and while I adapted to it eventually it always felt like I wasn't in complete control. Using frameworks is probably going to grow as time goes by though.
    Holding the wrong end of the stick since 2009.
  • codecademy.com - free begginer stuff for web apps: HTML, CSS, JQuery, PHP, Python and Ruby.

    teamtreehouse.com - this costs, but has very good reviews and tracks for all kinds of development, from web to iOS and Andriod.
  • Yossarian
    Show networks
    Xbox
    Yossarian Drew
    Steam
    Yossarian_Drew

    Send message
    Cheers for the replies so far, although many parts of Davy's response confused me greatly (complete noob, remember?)

    @Funk, front end stuff seems more appealing to me owing to UX allowing me to tinker with design, which does appeal, but I am still getting ideas together, so thanks for pointing out the difference, this is definitely something to consider.

    Also, I'm not sure if bug squashing will ever be something I enjoy, but it does seem like something I'll be good at. I'll just think of bugs as bones.

    Talking to Petey seems like a good idea too. @Petey, are you out there or do I have to text you?
  • davyK
    Show networks
    Xbox
    davyK13
    Steam
    dbkelly

    Send message
    Sorry....I rambled a bit. I am a code nerd. Love it.

    My tip - pick a general purpose language that is platform independant (meaning your code will run on any type of machine). C or C++ or Java.

    For web, I'd pick PHP. But web page programming can be tricky to get your head around to start with. Might be better to pick a general purpose language first to see if you have the ability. Programming doesn't suit everyone. It isn't a matter of intelligence it's a way of thinking.

    Once you get one language under your belt you will be able to hop to others without too much pain.

    Coding will rely on other dev skills:

    for back end / database - SQL - which allows you to read and write data from and to databases
    for front end / presentation - HTML, CSS and Javascript. How to draw web pages.

    Being able to wrangle data in XML format may be useful too. XML is just a clever way of representing data that can be manipulated in code quite easily. XML is the format of choice for the much touted "big data" or "open data".


    Holding the wrong end of the stick since 2009.
  • Yossarian
    Show networks
    Xbox
    Yossarian Drew
    Steam
    Yossarian_Drew

    Send message
    That's much clearer, thanks Davy.
  • Ah I notice you touch on the design stuff.

    If you are a coder in most agencies, they will have dedicated UX / UI types who will shit on you from a great height if you start questioning their designs.

    In most agencies I've worked at, there is a clear divide between thinker-uppers (UX / UI, product, architects) and implementers (software engineers and devs and testers). Personally I find this divide harmful, but it's there, and something to bear in mind.
  • Davy's post is definitely worthy of more weight than mine - he talks from experience, I'm from the outside looking in.
  • Yossarian wrote:
    Cheers for the replies so far,

    np
  • Yossarian
    Show networks
    Xbox
    Yossarian Drew
    Steam
    Yossarian_Drew

    Send message
    Funkstain wrote:
    Ah I notice you touch on the design stuff.

    If you are a coder in most agencies, they will have dedicated UX / UI types who will shit on you from a great height if you start questioning their designs.

    In most agencies I've worked at, there is a clear divide between thinker-uppers (UX / UI, product, architects) and implementers (software engineers and devs and testers). Personally I find this divide harmful, but it's there, and something to bear in mind.

    Yeah, I guess there probably is. Still, one of the things that appeals to me about coding is the possibility of creating something off my own back which could make me money.

    Funnily enough, I have an excellent idea for an app.
  • davyK
    Show networks
    Xbox
    davyK13
    Steam
    dbkelly

    Send message
    Funkstain wrote:
    Davy's post is definitely worthy of more weight than mine - he talks from experience, I'm from the outside looking in.

    Your UI design point is well made. It is quite easy now to write a web application that can have its look and feel designed entirely separately - and skinned for different users. My attempts at layout on the web would no doubt be met with derision.

    There are advantages to that approach - but for some applications it might not be a good idea to have that separation. You should still separate them at code level but have their design integrated.

    I was quite good at UI design in the green screen and windows days. Had a talent in keeping everything clean. But to be honest I can't be arsed getting into CSS.

    Holding the wrong end of the stick since 2009.
  • Yossarian
    Show networks
    Xbox
    Yossarian Drew
    Steam
    Yossarian_Drew

    Send message
    Out of interest, there are lots of languages floating around on here. Are these split into particular types? And how long does it take to pick one up? Obviously, this will be dependent on the person, and once you've got an idea of one, others should be easier, but a rough idea of how long it took others to pick this stuff up would be useful.
  • dynamiteReady
    Show networks
    Steam
    dynamiteready

    Send message
    Yossarian wrote:
    Yeah, I guess there probably is. Still, one of the things that appeals to me about coding is the possibility of creating something off my own back which could make me money.


    Funnily enough, I have an excellent idea for an app.

    Then I'd start making it. Planning it at least, and try and get as far as you can with the idea.
    That's personally how I learnt how to code. Honestly.

    I know the practice and experiment approach doesn't work for everybody though...
    Especially under pressure.

    Yossarian wrote:
    Out of interest, there are lots of languages floating around on here. Are these split into particular types? And how long does it take to pick one up? Obviously, this will be dependent on the person, and once you've got an idea of one, others should be easier, but a rough idea of how long it took others to pick this stuff up would be useful.


    To learn the basics, I would seriously recommend a fully featured IDE (Integrated Development Environment - i.e. where you can see the effect of the code you write. Unity is probably worth trying here...). Getting immediate feedback on your initial efforts will alleviate frustration. This is a big thing. Trust me.

    An IDE will also help you to learn how to read the code of others...

    If you find a simple Unity game example, for instance, load it into the IDE and press the run button, then you can look at the code it's built from, make a small change to line 99 (or something), restart the example, and see the effect.

    That will also help starting out.

    As for languages and purposes, they're all different, and some are better than others for certain things.

    When it comes to this subject, I've now developed a rather relaxed opinion.
    For me, whichever language does the job, is the best language...

    If I were to recommend a first time language to you though, I again think you should work out what you'd like to produce first...
    "I didn't get it. BUUUUUUUUUUUT, you fucking do your thing." - Roujin
    Ninty Code: SW-7904-0771-0996
  • Learn Haxe. It compiles to everything you'll want to use.
  • dynamiteReady
    Show networks
    Steam
    dynamiteready

    Send message
    AJ wrote:
    Learn Haxe. It compiles to everything you'll want to use.

    I've heard that.
    Kenta Cho (remember him?) now uses it.

    This entire line of discourse should be in the coder thread.
    "I didn't get it. BUUUUUUUUUUUT, you fucking do your thing." - Roujin
    Ninty Code: SW-7904-0771-0996
  • Yossarian
    Show networks
    Xbox
    Yossarian Drew
    Steam
    Yossarian_Drew

    Send message
    I forgot there was a coder thread. How do I hack into the server and move all these posts into that thread?
  • acemuzzy
    Show networks
    PSN
    Acemuzzy
    Steam
    Acemuzzy (aka murray200)
    Wii
    3DS - 4613-7291-1486

    Send message
    You can compile C# on Mac these days can't you?

    Python deserves more of a mention here too methinks.
  • Woah now. He wants to make iOS apps here. No PHP, no Ruby, no Python. He just needs a beginner book to get his feet wet and see if he enjoys the work. So no C++, no pointers. Practically every major language has been listed above.

    Anyways, avoid C# Yoss. It's just good to learn because there's always jobs going in it. But maybe it's worth picking up later on down the line if you want to build a career or whatever. If you're just dicking around and exploring, choose something you're interested in.

    If you've got an app idea, just find some beginners resources for iOS app development which will almost certainly guide you down the Objective-C path. You'll learn some coding basics this way and as it's linked to your app idea, you'll have motivation to keep going.
  • Actually, best thing to learn is either Brainfsk or Piet.
‹ Previous12345

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!