College computer programming classes
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    I'm looking at signing up for adult continuing education college classes in computer programming, to help me sustain a regular schedule of learning, and to "kickstart" my efforts to become more knowledgeable and efficient in my programming efforts. I don't want to work toward any degree, just take several classes that will help me learn more quickly. So my questions are in regard to which classes to skip, or ignore, and which might be most useful for someone who only wants to learn how to program, so that I can write programs for MorphOS, and maybe AmigaOS3/4, after I have become proficient coding for MorphOS. I'm sure I'll need to start with some general computer programming class, as a prerequisite, before I will be allowed to sign up for any other programming classes. After that, I want to concentrate only on classes that I will get an immediate benefit from, and not waste time taking any classes that would be useless for me.

    I imagine that many members here have taken university courses for computer programming, and some of you may have computer programming degrees, so your advice would be most useful. Ignore that I may have written similar threads to this one in the past, asking which programming languages would be the best to start out learning. I'm probably going to be using Hollywood mostly in the beginning, but also plan to learn C/C++, since that seems to be the most widely used languages for MorphOS software (and maybe for drivers too). I doubt that I will ever be good enough to join the MorphOS Dev. Team, but I would be very happy, if some day in the future, I could offer help to the official dev. team, or be considered for membership in the MorphOS beta testers group.

    Any advice would be appreciated, though most of you are in the EU, and may not be familiar with how adult continuing education works in the USA.
    MorphOS - The best Next Gen Amiga choice.
  • »24.08.20 - 01:23
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Andreas_Wolf
    Posts: 12150 from 2003/5/22
    From: Germany
    > I would be very happy, if some day in the future, I could [...] be considered
    > for membership in the MorphOS beta testers group.

    I would be surprised if programming skills are required for beta testing. Usually, beta testing involves extensively using the software to be tested (including anticipated ways of others (mis)using it, corner cases etc.) and writing comprehensible descriptions of the bugs encountered.
  • »24.08.20 - 08:29
    Profile
  • Paladin of the Pegasos
    Paladin of the Pegasos
    Intuition
    Posts: 1110 from 2013/5/24
    From: Nederland
    https://alison.com/courses?query=C++

    There's two C++ courses from the Microsoft Virtual Academy on here.

    Have a go at these first and see how you get on. Ask here for help when you get stuck.
    1.67GHz 15" PowerBook G4, 1GB RAM, 128MB Radeon 9700M Pro, 64GB SSD, MorphOS 3.15

    2.7GHz DP G5, 4GB RAM, 512MB Radeon X1950 Pro, 500GB SSHD, MorphOS 3.9
  • »24.08.20 - 10:02
    Profile
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    Templario
    Posts: 544 from 2012/4/28
    Not all people have a university degree to program, and to learn easy to programming the best option is Hollywood because the first steps are more easy then C/C++ for example the more single program that you make automatically open one window, in C/C++ the easy Hello runs inside cli or shell window.


    [ Editado por Templario 24.08.2020 - 12:31 ]
  • »24.08.20 - 10:29
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Samurai_Crow
    Posts: 161 from 2009/12/10
    From: Minnesota, USA
    I learned to program in BASIC years before I went to get my 4 year degree in computer science. Also, my offer still stands to teach you Hollywood programming, even though I don't need you to pay for my MorphOS license.
  • »24.08.20 - 12:50
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    takemehomegrandma
    Posts: 2720 from 2003/2/24
    Depending on your previous knowledge of course, but I think Java is a nice and forgiving beginners language that will get you started in object oriented programming. You will obviously not be able to write MorphOS programs in Java, but you will learn how to think and the methodology in a beginner-friendly way, that you will later benefit from when learning other languages. Introductionary Java classes should be available everywhere.
    MorphOS is Amiga done right! :-)
    MorphOS NG will be AROS done right! :-)
  • »24.08.20 - 21:17
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Samurai_Crow
    Posts: 161 from 2009/12/10
    From: Minnesota, USA
    @takemehomegrandma

    I'm afraid I must disagree with you in a few ways. First off, if his goal was programming cell phone apps for Android, Kotlin generally displaced Java. Second, if his goal was making desktop applications as a profession, Rust seems to be as safe as Java but, without a garbage collector, Rust often runs much faster, uses less memory and takes better advantage of multicore architecture than Java. Thirdly, if his goal was server programming, Java would be fine but who'd set up a beginner on a server besides a full university? Finally, because his goal is programming MorphOS, Java is way off in left field. It's a solution looking for a problem.
  • »25.08.20 - 05:49
    Profile
  • Moderator
    Kronos
    Posts: 2323 from 2003/2/24
    There are 3 things you need to learn:

    - "logic" as in transforming a problem into steps so small that the computer can understand them
    Here the used language is of little concern and college-courses could be very helpful
    But it's also the area where a lack of talent and starting so late can hurt you the most (think about it as learning an instrument or a complex sport)

    - the syntax of the used language, for MorphOS anything that isn't C (++/Objective) or LUA (Hollywood) is mostly useless
    Lots and lots of repetition is the key here

    - the APIs you will be using, unless you plan to write command line tools no college will help you here, and doing it on your own you will run into misleading or just missing documentation and everything being a decade or two out of time.
    IMO the biggest source of frustration
  • »25.08.20 - 07:56
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Andreas_Wolf
    Posts: 12150 from 2003/5/22
    From: Germany
    >> I think Java is a nice and forgiving beginners language that
    >> will get you started in object oriented programming. You will
    >> obviously not be able to write MorphOS programs in Java

    > if his goal was programming cell phone apps for Android, [...] making
    > desktop applications as a profession, [...] server programming, [...]
    > because his goal is programming MorphOS, Java is way off in left field.

    I think you misunderstood takemehomegrandma's point, which was that in his opinion, the mere goal of using Java for starters is that it would get amigadave started in object-oriented programming.
  • »25.08.20 - 09:19
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Andreas_Wolf
    Posts: 12150 from 2003/5/22
    From: Germany
    > - [...] LUA (Hollywood) [...]
    > - the APIs you will be using [...]. IMO the biggest source of frustration

    ...unless he uses "LUA (Hollywood)" ;-)
  • »25.08.20 - 09:27
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    Quote:

    Kronos wrote:
    There are 3 things you need to learn:

    - "logic" as in transforming a problem into steps so small that the computer can understand them
    Here the used language is of little concern and college-courses could be very helpful
    But it's also the area where a lack of talent and starting so late can hurt you the most (think about it as learning an instrument or a complex sport)


    Thankfully, logically figuring out step-by-step solutions to problems is something that I do best, which is part of why I am interested in learning how to program for MorphOS. I think I will be good at it, as soon as I discipline myself to committing the time required to get the learning phase done. Programming is not something that can be done, or learned, in 15 minute increments (or so I would imagine), and finding hours of time without distractions and interruptions is difficult these days. Having a relatively new relationship, and too many home improvement projects, are the two things keeping me from devoting the time I would like to devote to programming, but I am determined to set aside at least a few hours each week, to work on learning and practicing.

    Quote:

    - the syntax of the used language, for MorphOS anything that isn't C (++/Objective) or LUA (Hollywood) is mostly useless
    Lots and lots of repetition is the key here

    - the APIs you will be using, unless you plan to write command line tools no college will help you here, and doing it on your own you will run into misleading or just missing documentation and everything being a decade or two out of time.
    IMO the biggest source of frustration


    I'll be using Hollywood for most things at first, but I know that I will need to learn C/C++ eventually, if I want to create anything that requires speed of execution. As for missing documentation, I'll just have to depend on other MorphOS programmers for help, when I run into a problem that I can't find an answer for online, or in the docs.
    MorphOS - The best Next Gen Amiga choice.
  • »25.08.20 - 17:08
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Zylesea
    Posts: 2057 from 2003/6/4
    I suggest not to visit such courses. Either they are rather scientific or practical but usually too narrow minded (bound to industry standards).

    But your goal is Hollywood and MorphOS. Not java nor C++ with .net and not even Rust. Hence, learn from and with hollywood/MorphOS coders.

    Hollywood is really straight forward, the handbook and examples really do most of the job. Go into the examples, define some goals that you want to reach. IMHO the most complicated stuff in Hollywood is building advanced table based functions.
    But you don't need that for a starter. You can just write ugly spaghetti code - not nice (and of course not really recommended) but it works and you learn quite a lot (for example that structuring the code is eventually the better approach...).

    The thing is you really need to do some exercises that probably do not lead to very useful programs, but it's needed. IIRC my first "real" Hollywood program (i.e. I set up a goal and wrote code from scratch to reach that goal) was some BMI calculator. Input of weight and size, output calculated value and drawn into a BMi graph. How impressive! But it was at least a first own program.

    The route may be as follows: Do some "Hello worlds" (text, graphic, sound based) -> some input driven stuff -> timers, loops, event control -> graphic execises -> table stuff. Then work on the plugins, most importantly MUI Royale or RapaGUI, then some others, dependig on demand. Ask questions about Hollywood at the Hollywood forums or maybe via mail or maybe zoom/skype/#?.
    Keep the steps and your expectations small.

    And we have quite a few very advanced Hollywood coders among us here who offered a helping hand (I offer a helping hand, too). And of course Andreas, who does a really oustanding support job. He's nice, gets quickly what the actual issue is and usually comes with a quick and very constructive answer.
    --
    http://via.bckrs.de

    Whenever you're sad just remember the world is 4.543 billion years old and you somehow managed to exist at the same time as David Bowie.
    ...and Matthias , my friend - RIP
  • »25.08.20 - 21:17
    Profile Visit Website
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Zylesea
    Posts: 2057 from 2003/6/4
    Quote:

    Andreas_Wolf schrieb:
    > Ask questions about Hollywood at the Hollywood forums

    https://forums.hollywood-mal.com/search.php?author=amigadave :-)


    i know amigadave#s active there. I already took part in conversations. it was just a repeated suggestion to go on there.
    --
    http://via.bckrs.de

    Whenever you're sad just remember the world is 4.543 billion years old and you somehow managed to exist at the same time as David Bowie.
    ...and Matthias , my friend - RIP
  • »25.08.20 - 22:28
    Profile Visit Website
  • jPV
  • Yokemate of Keyboards
    Yokemate of Keyboards
    jPV
    Posts: 2096 from 2003/2/24
    From: po-RNO
    Quote:

    Zylesea wrote:
    I suggest not to visit such courses. Either they are rather scientific or practical but usually too narrow minded (bound to industry standards).

    But your goal is Hollywood and MorphOS. Not java nor C++ with .net and not even Rust. Hence, learn from and with hollywood/MorphOS coders.

    Hollywood is really straight forward, the handbook and examples really do most of the job. Go into the examples, define some goals that you want to reach. IMHO the most complicated stuff in Hollywood is building advanced table based functions.
    But you don't need that for a starter. You can just write ugly spaghetti code - not nice (and of course not really recommended) but it works and you learn quite a lot (for example that structuring the code is eventually the better approach...).

    Although if you don't know practically anything about programming, or just your own spaghetti style from some experiments, these kind of courses could still be useful to learn some better practises. They should be good for learning to write in better style from the start and teach some basic things right.

    I once took a university course for Python coding, and I would think it would be a really good to get some coding habits better from the start. Python is a scripting language like Hollywood, and it certainly teaches you to format your code in a proper way, because Python relies on indentation in its code blocks etc. I made a graphical minesweeper clone as the final exam on that course, and later on I even ported that game for Hollywood :) It didn't need that much modifications at the game engine, mainly just remembering that variables don't become local automatically on Lua/Hollywood and code blocks need some command to end them, and small differences in table definitions etc, but the main structures stayed pretty much the same. Graphics engine couldn't be ported as directly, but in fact it was much easier to do in Hollywood, because it's originally designed for graphics coding and offers "everything" in built-in functions.
  • »26.08.20 - 06:09
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    OlafSch
    Posts: 186 from 2011/11/16
    @Amigadave

    I would support what Zylesa wrote...

    If you really want to develop for both MorphOS and AmigaOS you would need to learn C/C++. In my view both are not really beginner-friendly so Hollywood offers faster success and is much easier to learn. Also taking courses on university is too far and will not make you happy (propably). You could perhaps buy a book and start there or search for courses in web. Then you see if it is something for you or not. Courses on university are certainly not easier. And of course learn Hollywood. In my view best way to learn something new search for a limited project and try to do it. If you have problems ask.
  • »26.08.20 - 09:05
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    OlafSch
    Posts: 186 from 2011/11/16
    @jpv

    Of course learning structured programming (perhaps even object-orientated) is helpful but I doubt that amigadave wants to work in a big project with many developers. And if the code becomes too big you automatic learn to do it better ;)

    Amigadave is a hobby developer who wants to do some smaller projects (I guess) so I do not know if all the theory really is needed

    Better start somewhere, ask and look how others do it
  • »26.08.20 - 09:11
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    OlafSch
    Posts: 186 from 2011/11/16
    @all

    just for fun...

    https://www.macobserver.com/columns-opinions/editorial/programming-languages-like-cars/

    When programming languages would be cars
  • »26.08.20 - 09:13
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    Quote:

    OlafSch wrote:
    @jpv

    Of course learning structured programming (perhaps even object-orientated) is helpful but I doubt that amigadave wants to work in a big project with many developers. And if the code becomes too big you automatic learn to do it better ;)

    Amigadave is a hobby developer who wants to do some smaller projects (I guess) so I do not know if all the theory really is needed

    Better start somewhere, ask and look how others do it


    I should probably just let this thread die out, as I have gotten probably all of the useful advice and answers from members here already, but I will reply to the above in this way. I agree with jpv, and that is part of my reason for thinking of taking a local college course on computer programming, no matter what language they start with. Learning some of the most basic principles of programming "correctly", I believe would be useful to me, and perhaps prevent me from making silly mistakes in the beginning. I would rather not start out writing spaghetti code, and later having to learn how to code in a more proper fashion. I'd like to start out doing things in a more correct and understandable way, and then build on that "good start".

    So, that is part of my explanation of why I am considering taking a college course. The other part of the reason, is that I find it hard to force myself to stick to a schedule for learning how to program, and get easily distracted. Attending a college course once or twice a week, would give me at least a few hours of no distractions, where I could focus on learning to code. It's like I'm trying to set myself up for a kick in the ass to get me started, and I'm hoping that after one or two courses, I won't need anything else to keep me going, and I will fall into a good pattern of setting that time aside, that I would have been going to the college to attend the course, and replacing it with time coding at home. We shall see.

    I really appreciate all the offers for help, and I plan to take advantage of them in the near future.
    MorphOS - The best Next Gen Amiga choice.
  • »27.08.20 - 00:57
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Zylesea
    Posts: 2057 from 2003/6/4
    Quote:


    The other part of the reason, is that I find it hard to force myself to stick to a schedule for learning how to program, and get easily distracted.



    Indeed, distraction is a bitch (dunno how much time I spent in forum instead of doing something productive). For that reason a course with a fix timetable is pretty useful. And my post above was maybe a bit too much stressing the anti mood. A course probably does no harm, but I think it's probably not the most efficient way (given you target Hollywood/MorphOS).
    Plus university courses often have quite a pace. I did a second full study recently and I really have my problems to keep the pace of the 20-25 year younger students (or the pace I had 20-25 years ago during my first study) who have a fresh brain and no kids at home...It was quite a ride, but it's doable. I only need to pass one last exam to finish this study (so much for distraction, back to my stack of books now).
    --
    http://via.bckrs.de

    Whenever you're sad just remember the world is 4.543 billion years old and you somehow managed to exist at the same time as David Bowie.
    ...and Matthias , my friend - RIP
  • »27.08.20 - 22:36
    Profile Visit Website
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    Quote:

    Zylesea wrote:
    Plus university courses often have quite a pace. . . . . who have a fresh brain and no kids at home...It was quite a ride, but it's doable. I only need to pass one last exam to finish this study (so much for distraction, back to my stack of books now).



    Ha! I certainly don't have a fresh brain, but my kids are long gone from my house, and rarely visit, so I don't have that distraction to pile on top of the rest of my distractions. It was over 40 years since my first college classes, so you can see why the freshness of my brain is going to challenge me.
    MorphOS - The best Next Gen Amiga choice.
  • »28.08.20 - 04:02
    Profile
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    Templario
    Posts: 544 from 2012/4/28
    Quote:

    amigadave escribió:
    Quote:

    Zylesea wrote:
    Plus university courses often have quite a pace. . . . . who have a fresh brain and no kids at home...It was quite a ride, but it's doable. I only need to pass one last exam to finish this study (so much for distraction, back to my stack of books now).



    Ha! I certainly don't have a fresh brain, but my kids are long gone from my house, and rarely visit, so I don't have that distraction to pile on top of the rest of my distractions. It was over 40 years since my first college classes, so you can see why the freshness of my brain is going to challenge me.


    I think that you best choice is programming with Hollywood, because for our ages learn the c/c++ functions, structures, etc, is very complex.
    Note: I recommend you Hollywood, but I don't get money or gifts from AirSoft, quite the contrary.....
  • »29.08.20 - 08:52
    Profile
  • ASiegel
    Posts: 1376 from 2003/2/15
    From: Central Europe
    Quote:

    amigadave wrote:
    So, that is part of my explanation of why I am considering taking a college course. The other part of the reason, is that I find it hard to force myself to stick to a schedule for learning how to program, and get easily distracted. Attending a college course once or twice a week, would give me at least a few hours of no distractions, where I could focus on learning to code.

    The problem with this approach is that it is not a very effective way of learning how to program applications unless you have the discipline to also spend a substantial amount of time developing by yourself at home.

    Learning how to program in a higher-level language is very similar to learning a foreign language. You are simply learning how to talk to computers rather than humans.

    How many people do you know who took foreign language classes in high school but who were never really able to properly speak a second language and quickly forgot most of what they had learned? This is rather common.

    You really have to immerse yourself in a new language for it to stick. A few hours per week is just not enough. You also need to keep applying and practicing what you learned.

    Quote:

    It's like I'm trying to set myself up for a kick in the ass to get me started, and I'm hoping that after one or two courses, I won't need anything else to keep me going, and I will fall into a good pattern of setting that time aside, that I would have been going to the college to attend the course, and replacing it with time coding at home. We shall see.

    There is really no reason why you should not be able to start learning how to program right away. If you are the type of learner who prefers to watch and listen to someone explain things, you can buy or rent inexpensive but informative video tutorials that explain how to develop in mainstream languages.

    The benefit of these options is that, especially if you are a bit rusty, you can watch these videos when it suits you. Also, if you failed to understand something, you can easily rewind and rewatch a section multiple times. You cannot really do that when you are attending college courses.

    So, before you enroll or start attending, I highly recommend to just start watching some video tutorials and see how you like it. You might be surprised.

    I am not discounting the idea to attend college course, albeit I do think a coding camp would be a better option to get started, but you really need to find a way how you can learn by yourself at home (either in lieu of or in addition to any classes). Video tutorials are a rarity in our community but they can be a very potent option for people who sometimes struggle with learning by reading text.
  • »30.08.20 - 09:10
    Profile
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    KennyR
    Posts: 878 from 2003/3/4
    From: #AmigaZeux, Gu...
    I did a year of a Computer Science degree in the 90s before switching to a Chemistry one and completing that. First year was interesting enough, but I dumped it halfway through second because it wasn't teaching programming (except in Pascal, which nobody uses), just systems analysis SSADM and business and economics crap I totally didn't care about. What little C or C++ we did do was completely useless for Amiga programming, AFAIR.
  • »30.08.20 - 20:16
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    asrael22
    Posts: 404 from 2014/6/11
    From: Germany
    Quote:


    How many people do you know who took foreign language classes in high school but who were never really able to properly speak a second language and quickly forgot most of what they had learned? This is rather common.

    You really have to immerse yourself in a new language for it to stick. A few hours per week is just not enough. You also need to keep applying and practicing what you learned.



    I'd agree.
    I'm learning new languages every year.
    Last year Common Lisp and Elixir.
    While I did stick with Common Lisp I'm trying Ocaml as a representative of static types this year.

    What I usually do is take a Kata, like the Game of Life (https://kata-log.rocks/game-of-life-kata) or Mars Rover and practice it repeatedly.

    The main point here is practice, practice, practice.

    Quote:

    There is really no reason why you should not be able to start learning how to program right away. If you are the type of learner who prefers to watch and listen to someone explain things, you can buy or rent inexpensive but informative video tutorials that explain how to develop in mainstream languages.



    Also agree.
    There might even be free YouTube videos. Probably plenty.
    I did some myself on Test-Driven Development with multiple languages showing the Game of Life and Mars Rover.

    Some mentioned Java here. Java is a simple and yet mainstream language. Good for learning.
    Hollywood is based on Lua and can also do object-oriented paradigm. So if you plan on doing Hollywood anyway it might be a good idea to just start practicing with it.


    Manfred


    [ Edited by asrael22 31.08.2020 - 19:43 ]
  • »31.08.20 - 17:42
    Profile