News: 11 March 2016 - Forum Rules

Author Topic: How did you start programming?  (Read 21300 times)

FAST6191

  • Hero Member
  • *****
  • Posts: 3354
    • View Profile
Re: How did you start programming?
« Reply #20 on: October 16, 2013, 05:16:05 am »
I am not sure actually.

I had a little three line rectangular pixel block vtech thing which had a pretty functional and pretty standard (every other console/developer was bolting on vendor specific things to BASIC) version of BASIC on it. As with furrykef it came with a manual that I laboriously typed out, fiddled with and adapted a bit.

Of course around the same time and being in the UK I ended up with commodores of various stripes, atari computers, amstrad... (people were selling off games, which came in tape form for those unaware, in sports bags for £10 and the consoles for less), electronics kits and got into computers at school (possibly a bit of Qbasic there and definitely in the later years, though learning DOS was probably the bigger thing to come out of that). Never had a TI calculator (or "graphing calculators" as I would probably have known them) though so I missed out on that route in. Said old consoles also came with manuals and I got to type out things from magazines (debugging for me rarely went beyond correcting syntax errors there) that got stuffed in the same bags. That said other than poke codes probably being my first real experience with cheating (something that would only later return on the megadrive, PS1* and properly for me on the N64) I never took it far there.

*Those devices you stuck in the back of them to play copied games were cheat devices after all.

School had a logo robot but realistically it was programmed in the sense you gave it instructions and could possibly make a loop. That was also about the only time school actually taught you anything about computers until "MS word and powerpoint as to be understood by complete cretins* and now being taught to you" when I was 16 (I am not yet 30). Fortunately I had long since been going in for the self taught business. I do have to wonder if the self taught thing caused me to veer away from computing when it came time to do the university bit.

*styles were not even mentioned and the closest they ever got to teaching something useful was "use the justification buttons and do not just press space", unfortunately they lost their train of thought after that and did not cover page breaks/new page commands.

After that... I grasped the basics of (and in most later forgot the syntax of) several languages including X86 assembly, the C family, python, autoit, sql (pure and MY though I have been looking at nosql of late) and can probably fumble through a few more. I do not believe I was one of the casualties of BASIC but I can see where that belief might be demonstrated to be false (in my darkest moments I will have the urge to throw in some gotos and think in line numbers).

Today if you were to put a gun to my head the only language I can sit down and write a program in is either linux shell/windows powershell scripts which I am sticking with HTML and PHP in "eh" territory or avisynth which I am going to struggle to call Turing complete in a useful way. ARM and x86 assembly I can do a lot in but in the former it has mainly been inline and ROM hacking purposes (I have never written a program, IO and all, in it) and the latter has been inline or with the benefits of something like HLA (which abstracts the IO and some aspects of memory handling away). On the subject of web languages and such it always feels like a con whenever I set such things up for people, mainly as if you asked to me to detail how it works the very first thing I would do after the initial read through is reach for my HTML, CSS, PHP, MYSQL, javascript... manuals/reference guides.
Though I say so myself I have studied computer science and computer language theory extensively, electronics (digital* and analogue) are part of what I do and sysadmin stuff is a good chunk of the rest so I reckon for the most part I would just have to get the syntax of a language on lock plus various aspects of OS programming/libraries which is probably the bigger problem. When it happens it will probably be my gaining back python (I learned it, used it for a while and kind of forgot it afterwards), learning C or C# but taking it to OS API level this time or maybe I will take another run at something in the lisp world. My main problem is most programs already do what I want, I do not consider the minor changes I sometimes make and subsequent recompiles to count and I do not have anything I really want to code (I have a few ideas for some ROM hacking tools and would like to polish up a few others but nothing that truly moves me, when there is a whole world of other things that do hold or spark my interest though that it has a habit of slipping down the list).

*I guess this means I could fumble my way through the arduino and teensy++ takes on Atmel devices. VHDL (almost the assembly equivalent for FPGA programming) also makes a strange kind of sense in my head, there is still the urge to run screaming if I encounter it but if I work through it.

In short absolutely do not follow my path into programming, though I hold I am possibly a bit more adaptable than some (I assume we have all dealt with the "just actually learned java and fancy learning ROM hacking" set) if I look at the "useful things I have done" list there is basically nothing on it.

KaioShin

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 5699
    • View Profile
    • The Romhacking Aerie
Re: How did you start programming?
« Reply #21 on: October 16, 2013, 06:30:12 am »
Since this thread is now actually on-topic I guess I can share too.

My first gaming system/PC (it really was the former) was a used C64. In case you don't know, the C64 had a BASIC interpreter as operating system. So it wasn't surprising I quickly grew more interested in what BASIC can do beyond LOAD "$",8,1. I also had a really huge brick of a book with over 1000 pages on the C64, with a large about BASIC and a bit about assembler. Though I really don't remember nowadays how far I got with it. Not beyond simple text adventures were the only valid option was to enter the word I was thinking of when I wrote it. But that laid the foundation of my interest in computers and how they work in general.

I later had Delphi classes in school and learned some actual programming basics there. We had an introduction into programming microcontrollers with ASM too. Enough to write my own script dumper for Dragon Quest Monsters CH and a working VWF. Since I started actually studying CS at a university I had to use half a dozen different languages, Python, Java, C#, C++, Haskell, (VHDL). It is absolutely true, if you can use one programming language you can use them all. Currently I prefer Python personally, if I have to write something with UI then C#. I just hate non-native, cross-platform UIs that stick out like a sore thumb (like those available for Python or Java). I only really had to use C++ seriously for the first time very recently and I must say that train left the station for me. I find it clunky, archaic and ugly compared to what I'm used to. I know it's objectively good, but I'm just too spoiled by more modern languages and it'll never feel right to me now. I also refuse to touch anything web related. The IT world is big enough, let me skip that one thing.
All my posts are merely personal opinions and not statements of fact, even if they are not explicitly prefixed by "In my opinion", "IMO", "I believe", or similar modifiers. By reading this disclaimer you agree to reply in spirit of these conditions.

MegaManJuno

  • RHDN Patreon Supporter!
  • Hero Member
  • *****
  • Posts: 1293
  • Robot Master
    • View Profile
Re: How did you start programming?
« Reply #22 on: October 16, 2013, 11:48:50 am »
For me, small BASIC programs in the 3-2-1- Contact magazine got me started with QBASIC. From there, I took a couple Junior High and High School classes in Apple II BASIC and Apple II Pascal. I went into the military straight out of High School, guaranteed a programming role. They trained me in ADA, but when I got to my duty station, they didn't use it there.  ::)

From that point forward, I've pretty much just picked up stuff as I go, including (but not limited to) the following:
  • NATURAL
  • Clipper
  • Visual Basic (classic & .NET), VBScript, and VBA
  • HTML, ASP (classic & .NET), JavaScript
  • T-SQL

Lately, I've been getting into a little C# since my new job is moving in that direction from VB.NET for new projects. I dabbled a little in C/C++ some years ago, but never really had a need for it for any of my jobs, so I kind of dropped it to focus on the more relevant stuff I was working with.

Bisqwit

  • Sr. Member
  • ****
  • Posts: 424
  • Polite, but politically incorrect.
    • View Profile
    • http://iki.fi/bisqwit/
Re: How did you start programming?
« Reply #23 on: November 10, 2013, 03:00:09 am »
In 1992 they had computer technology as an optional subject in the school curriculum, and I took it. I had no prior experience about computers whatsoever.
The studybook introduced GW-BASIC programming, which was immensely interesting to me, and I began writing programs on paper, then trying them on computers, and later spending all my days at friends' houses programming their computers, because I did not have my own one.
The next year introduced me to Turbo Pascal, and from there on I eventually discovered C, Turbo C, and C++. At the same time I began taking interest in assembler programming, which I did not understand at all in the beginning (I used the DOS debug.exe), but a few books in the library got me on the right track eventually. In 1995 or so I began using Linux, but it was only after 1998 when I switched to using Linux primarily. I never quite got used to Windows; I only used Windows 98 to take advantage of its multitasking of DOS programs, such as running Scream Tracker 3 while also running IRC, etc.
After switching to Linux I also began focusing on C++.
In 2000 I began learning PHP, and later I got also learned Ruby, Python, Perl and many other languages.
I still use C++ as my primary programming language, but I think I have had passing experience in everything. Still haven't written a line of C#, Rust or Go, but I have read code written in each of those languages.
« Last Edit: November 10, 2013, 03:10:59 am by Bisqwit »

cret

  • Jr. Member
  • **
  • Posts: 75
    • View Profile
Re: How did you start programming?
« Reply #24 on: December 24, 2013, 04:15:31 am »
there is no need to learn java. with c you can kick in java-developers face. oop sucks
go r2, use debug. .... White hand was fainted

Bregalad

  • Hero Member
  • *****
  • Posts: 2763
    • View Profile
Re: How did you start programming?
« Reply #25 on: December 24, 2013, 07:34:52 am »
Well it depends really. 90% of the time C will be just fine (granted you are skilled with pointers, not that many people are, but as a romhacker you should be ;) ), but as soon as you will require a program with a lot of data structures such as Linked Lists, Array Lists, vector or matricies, you'll be in great pain.

cret

  • Jr. Member
  • **
  • Posts: 75
    • View Profile
Re: How did you start programming?
« Reply #26 on: December 24, 2013, 10:48:57 am »
why?
an object is just struct with data and function-pointers in it, isn't it? you can use malloc and free to create and destroy structs (sizeof is your friend).

this is written in c: https://github.com/radare/radare2/blob/master/doc/oo
go r2, use debug. .... White hand was fainted

tryphon

  • Hero Member
  • *****
  • Posts: 736
    • View Profile
Re: How did you start programming?
« Reply #27 on: December 24, 2013, 12:08:58 pm »
So you are not saying that oop sucks, since you can do it in C, but that Java sucks  :beer:

BRPXQZME

  • Hero Member
  • *****
  • Posts: 4572
  • じー
    • View Profile
    • The BRPXQZME Network
Re: How did you start programming?
« Reply #28 on: December 24, 2013, 04:32:58 pm »
why?
an object is just struct with data and function-pointers in it, isn't it? you can use malloc and free to create and destroy structs (sizeof is your friend).
Eh, that’s an implementation detail. Some very important OO people have very different ideas about the definition of the thing.

I’m not a particularly big fan of OOP myself, though. It’s only good when it does what it’s supposed to, which isn’t as often as I’d like.

Also, if I have to work Java in the next 10 years it’ll be too soon.
we are in a horrible and deadly danger

cret

  • Jr. Member
  • **
  • Posts: 75
    • View Profile
Re: How did you start programming?
« Reply #29 on: December 24, 2013, 06:54:26 pm »
the problem that i see is, that most of it is only construct, which doesn't show you whats really going. That makes it quite difficult for new users to understand their computers.


Yes, oop itself might be nice (if you can controle the pointers), but java sucks
go r2, use debug. .... White hand was fainted

BRPXQZME

  • Hero Member
  • *****
  • Posts: 4572
  • じー
    • View Profile
    • The BRPXQZME Network
Re: How did you start programming?
« Reply #30 on: December 24, 2013, 07:49:56 pm »
the problem that i see is, that most of it is only construct, which doesn't show you whats really going. That makes it quite difficult for new users to understand their computers.
Lisp machines 4 lyfe dawg
we are in a horrible and deadly danger

cret

  • Jr. Member
  • **
  • Posts: 75
    • View Profile
Re: How did you start programming?
« Reply #31 on: December 25, 2013, 03:53:21 am »
yo dawg
go r2, use debug. .... White hand was fainted

Bregalad

  • Hero Member
  • *****
  • Posts: 2763
    • View Profile
Re: How did you start programming?
« Reply #32 on: December 25, 2013, 05:41:43 am »
Personally I think anything like "pure oriented object" or anything in the like is in reality pure bullshit.

HOWEVER, again, some OO is very useful when dealing with "complex" data structures (complex in the sense it's not trivial, like an array which is trivial).
You can sort of emulate OO in C, but there is no point really, you still can't do something like
A + B

to get the sum of 2 matrixes for instances. You'll have to have an explicit function call.

Saying it sucks because you can do thing without it sucks, because as long as you have turing completeness you can do anything. Do you want to do everything with a CPU with a single "subtract and branch if negative" instruction ? Because you *can* do everything with this instruction. Not that you'd even want to try.

The main problem with the C language is that, yes, it's cool to be able to write your own personal linked lists, dynamic arrays and so on, but the problem is that :
1) You *have* to do this if you need such data structures so for newbies it's quite misleading
2) After you have written your amazing linked list of int you have to rewrite it if you want a linked list of short or linked list of linked list of int or whatever.
« Last Edit: December 25, 2013, 05:47:23 am by Bregalad »

BRPXQZME

  • Hero Member
  • *****
  • Posts: 4572
  • じー
    • View Profile
    • The BRPXQZME Network
Re: How did you start programming?
« Reply #33 on: December 25, 2013, 05:52:36 am »
That’s not strictly to do with object orientation. That’s operator overloading, a form of polymorphism, which does not require objects per se.

And rewriting your linked list for types, while I consider it currently problematic due to how messy it is, is not particularly difficult or tedious with proper macro usage.
we are in a horrible and deadly danger

cret

  • Jr. Member
  • **
  • Posts: 75
    • View Profile
Re: How did you start programming?
« Reply #34 on: December 25, 2013, 03:13:34 pm »
Quote
After you have written your amazing linked list of int you have to rewrite it if you want a linked list of short or linked list of linked list of int or whatever.
^
|
` --- use pointers
go r2, use debug. .... White hand was fainted

Bregalad

  • Hero Member
  • *****
  • Posts: 2763
    • View Profile
Re: How did you start programming?
« Reply #35 on: December 27, 2013, 02:23:19 pm »
@cret : Sorry but what you are saying is just dumb. Storing a linked list of "int" is not the same as storing a linked list of pointers to int, in the scementics nor in the usage.

BRPXQZME

  • Hero Member
  • *****
  • Posts: 4572
  • じー
    • View Profile
    • The BRPXQZME Network
Re: How did you start programming?
« Reply #36 on: December 27, 2013, 06:25:03 pm »
Didn’t want to sound like I think I’m so smart by adding anything, but if you just use unions for your node you can also reuse your structs pretty well. Albeit it’s not completely generic, and anonymous unions weren’t standard till C11 so you’ll need a relatively up to date compiler. The space wasted from using a union is probably a non-issue on today’s 64-bit systems with aligned everythings.

I think a lot of C programmers are fine with the idea that C is long in the tooth and could use a few adjustments here and there; it’s not fundamentally broken, and it’s not going to be dethroned as the lingua franca of the open source world very soon. I feel like I should probably set aside some time to really pick apart libCello or ooc, myself.
we are in a horrible and deadly danger

cret

  • Jr. Member
  • **
  • Posts: 75
    • View Profile
Re: How did you start programming?
« Reply #37 on: December 27, 2013, 09:19:15 pm »
ok, its not the same, but it should solve the problem
go r2, use debug. .... White hand was fainted

FAST6191

  • Hero Member
  • *****
  • Posts: 3354
    • View Profile
Re: How did you start programming?
« Reply #38 on: December 28, 2013, 07:15:32 am »
I think a lot of C programmers are fine with the idea that C is long in the tooth and could use a few adjustments here and there; it’s not fundamentally broken, and it’s not going to be dethroned as the lingua franca of the open source world very soon. I feel like I should probably set aside some time to really pick apart libCello or ooc, myself.

I wonder how much resistance you will encounter there as people will flash back to Borland's efforts, D and some of the other stuff there.

That said I am liking the look of some of the memory safe and other such modifications to things, especially as several seem to be being approached almost from a paradigm way of thinking (compiles just the same if you want to take it back into unsafe worlds). Likewise with windows mostly kicking inline assembly in the head (looking around, read the video encoding/filtering people which was probably the last bastion of general use assembly anyway, it seems Intrinsics are the new hotness http://msdn.microsoft.com/en-us/library/26td21ds.aspx ) and it almost being acceptable to make a 64 bit or nothing program we are entering interesting times.

On it being the lingua franca of open source.... low level then sure but in terms of combined volume I reckon Java, Python and Perl might take some of that and if I am allowed to consider some using those as the main language and dropping down to the likes of C for "inline" type purposes then even more so. Wind in android/IOS and web stuff (give or take CGI) and it changes again.

Bregalad

  • Hero Member
  • *****
  • Posts: 2763
    • View Profile
Re: How did you start programming?
« Reply #39 on: December 28, 2013, 10:08:09 am »
Of course there is several ways arround the problem, and of course it's possible to solve it because C is turing complete ! I was just saying C is not the most appropriate for more complex algorithms, higher level languages were invented for a reason.