# Mumblings of an apprentice chef



## protocelt (Jan 12, 2016)

[BABBLE]So in attempting to learn how to code, I first tried with Lua. It didn't seem too difficult to me but to be honest, it bored me to death and I quickly lost interest. I then looked at Python and ended up bored as well. I picked up a book on C++ a few years ago when I thought about learning and before I started using FreeBSD. I put it on the shelf and never picked it up again, that is, until recently. Last week, I said "what the hell" and took it out and started reading through it. Surprisingly, it was interesting. In fact, so interesting, that I have been working with it for that last week with almost all of my free time and it just seems to get more and more interesting as I suck in the information and play with what I've learned as I go along so looks like I may in fact have a winner.[/BABBLE]

With the useless babble above out of the way, I'm curious to know if anyone else here with ample programming experience has or had experienced something similar to the above as well. Anyone that I know in person that programs either in a professional setting or as a hobby has not had a similar experience, though admittedly, they had all started either at a young age or during college which may or may not have made a difference. I have no idea. It's a trivial curiosity, but one I have non the less.

Also, as you may have immediately noticed, the thread title is of little relation to the topic, but this *is* the Off Topic forum.


----------



## leebrown66 (Jan 13, 2016)

I started with (am I really going to admit this?) BASIC (ok yes), in the early 80's, then 6502, C, 68000, C++.  After that no particular language has interested me, however the OOD, UML and design patterns stuff I found fun, years later.  Unfortunately the need to put food on the table has caused me to code in other languages professionally, except C for which I wrote two small commercial products while self-employed.

I found after coding for years decades, pretty much all coding languages are the same (there are exceptions of course), with variations on some particular theme or other.  C++ has always been my favourite and I've not come across a close analogue (I mean c'mon how many languages let you write your own types, define the semantics and overload any operators) .  I wish I could have spent more time with it and become proficient, but I still consider myself a beginner with it.  C would be my runner up.


----------



## kpedersen (Jan 13, 2016)

I started out with Visual Basic 6, then (forcibly since Microsoft dropped it) moved to Visual Basic.NET but did not like the .NET framework or the dependencies it dragged in, nor the lack of portability between different versions of Windows and Linux (at the time before Mono).
So I moved to Borland C++ Builder (5/6) and really liked this for building GUIs but portability was still an issue between different operating systems than Windows. So I moved to just C++ and used things like wxWidgets.

I worked professionally in the "game industry" for a while and found that C++ made it quite awkward to port to mobile devices (i.e they have cut down versions of the C++ runtimes) so started looking into C too. Now I generally stick with C and C++ for everything.

I looked at Lua for scripting in games but frankly, the time taken making bindings between languages could better be spent on debugging the C/C++ I have written and keeping a homogeneous environment.

The latest C++ (C++11) is changing too much though, I stick to C++03 with a few of my own smart_ptr classes.


----------



## forquare (Jan 13, 2016)

I do not have ample programming experience, having been taught Java at uni I always found it clunky and was never sure I was doing it "right".  But I wanted to comment on this:



protocelt said:


> ...Last week, I said "what the hell" and took it out and started reading through it. Surprisingly, it was interesting. In fact, so interesting, that I have been working with it for that last week with almost all of my free time and it just seems to get more and more interesting as I suck in the information and play with what I've learned as I go along so looks like I may in fact have a winner.[/BABBLE]



After uni I worked on the railway for a few years and lost a lot of computing knowledge.  I happened across a copy of the Llama Book (Learning Perl) and just started reading on my breaks.  I was amazed at how fun it was to read, and the approach allowed me to do a lot of the exercises in my head.  The next occasion I had some time to sit down I write a few small scripts/programs in Perl and was amazed how much fun I had doing it.  I concluded that in my case the style of the book had a lot to do with my enthusiasm.

Out of interest, what C++ book did you pick up?


----------



## protocelt (Jan 13, 2016)

forquare said:


> Out of interest, what C++ book did you pick up?


This one.


----------



## PacketMan (Jan 14, 2016)

The guys at work are telling me to learn Python. It sort of looks like BASIC and C+ combined which I did a long time ago.


----------



## drhowarddrfine (Jan 14, 2016)

I grew up as an electronic engineer. Began life in the broadcast field. After 10 years of that, I got a job with a company that made some of the very first CAT scanners which was my introduction to computers. As years went by, designing digital circuits, I found the need to program by using switches and, eventually assembly. This was all natural to me cause assembly was similar to watching the flow of addresses and data through wiring of a circuit board. In fact, even today I find myself thinking that way as I program.

In 1985, I went to work for a medical company. If you ever had eye surgery, there's a 50/50 chance my design was used during the procedure. There, our fancy, schmancy MIT engineering director told us he wanted us all to use this new language, "C", and we were all dragged kicking and screaming to do so. I struggled with it cause I felt I could do the same thing in assembly, just as fast and with more meaning, than this abstract C crap.

But, as time went on, I started figuring it out. I was able to understand the "abstractions" and even able to fit my model of the flow of addresses and data. Now I'm pretty good at it but C++? No. Microsoft ruined that for me.

Sometime in the late 90s, I decided I wanted to create an application that would run on Windows. From what I read, I would "absolutely gotta have to do it using Visual Studio and Visual C++!!!!" Somehow I acquired all that, I didn't buy it myself, and started reading Microsoft's books but couldn't make head or tails out of it. The problem was the same as before; the abstracting of everything away from the hardware. On top of that, the Microsoft documentation did two things. It assumed you were already an experienced programmer and it did things using Microsoft tools in a "visual" manner. Nothing from the command line.

It wasn't until 10 years later that I finally caught on when I had to debug someone else's code that I found an online course that taught from the command line without all the point-and-click stuff. Then it all fell in for me but, to this day, I have not had a need for it and still do object oriented programming in C when necessary using my own techniques (though I see there are books and articles about this thing online doing pretty much the same thing I do).

I thoroughly agree with leebrown66 that I look at most languages and they all seem to look like C. When I get tempted to try something else, and read and tinker with it, I often stop with "this is just like C so why bother?". Many of those languages are slow, insecure, sloppy, and have a multitude of problems. People tell me some of those languages don't have issues like speed of operation cause computers nowadays are so fast and have so much memory but I always think, "Well, if you used C you wouldn't need faster computers and more memory and 640K really is enough!".

The only language I've looked at seriously enough to use is Go. Of course, it's a C-like language but what makes me interested is all the facilities that are included with it that I would have to write from scratch (if I hadn't already done that years ago). Rust also seems to be one I could get into but Go has more built-ins for web development which is what I are (now that I can spell it).

So that's my story and I'm sticking with it.


----------



## protocelt (Jan 15, 2016)

PacketMan said:


> The guys at work are telling me to learn Python. It sort of looks like BASIC and C+ combined which I did a long time ago.


Nothing wrong with Python, and that's what was recommended I start out with as well which I think is the standard recommendation but I just didn't find it interesting. Same with Lua. It may just may be the material I was using to learn, similar to what forquare mentioned above. I don't know. It just didn't click with me.



kpedersen said:


> The latest C++ (C++11) is changing too much though, I stick to C++03 with a few of my own smart_ptr classes.


Interesting. The book I linked to above uses C++03. Hopefully not too much has changed. I'm assuming it shouldn't be too difficult to catch up with C++11 after getting a grasp of the language basics. I did find a lot of material online references to C++11 while searching the web for references and there didn't seem to be much difference to me though as I've only been at this for barely two weeks, I may be way off in that regard.



drhowarddrfine said:


> [...]
> Now I'm pretty good at it but C++? No. Microsoft ruined that for me.
> [...]


You can probably thank Microsoft for your move to FreeBSD then.  I seriously considered electrical engineering myself. I chose to go the business management route instead. Wrong choice. 

I don't have any kind of an educational CS background so everything I know is learned through self study. I enjoy learning which is one of the things that drew me to UNIX and ultimately FreeBSD. I'm finding C++ more interesting because it's forcing me to put in more effort. The more mental effort I put in, the more I get out of it and remember. The book I'm using to start out with is supposed to be something someone with no programming experience can use, though I'm not quite sure that's the case. I'm supplementing it with other literature online as I go but so far it's been a blast learning. I'm still working on getting some of the basic concepts and syntax of the language down so it'll be a while before I'm able to do anything worthwhile with it as I only have so much free time and some of that is spent doing more with FreeBSD as well as personal responsibilities of course.


----------



## leebrown66 (Jan 15, 2016)

This was my introduction to C++, plus I highly recommend this to further understanding of OO in general.

I bailed on school at 17, bored to death with the whole thing, got a job programming games in 6502.  Wrote my friend's CS degree project for him a few years later which I knocked out in 2-3 weekends.  Now their lab, that _was_ interesting.  A room with about a dozen CPU's, each with about 4 terminals attached, networked, definitely a *nix of some kind, although I had no clue at the time.  It was running X I do remember that because I had to figure out the library calls on that first visit, then write the code at home.


----------



## drhowarddrfine (Jan 15, 2016)

protocelt said:


> You can probably thank Microsoft for your move to FreeBSD then.


This is absolutely true. I ran Windows at home until 2003 when a relative asked me to create a web site for her business. I had absolutely NO interest in web programming but I said I would do her a favor and try to figure it out. (An online ordering system for her restaurant.)

I had another distant relative who was a programming manager for a large Microsoft shop who got me all kinds of Microsoft software for free.  So I started with that using IIS on whatever professional Windows version it was back then and ASP.NET. Worked on that for nine months until Microsoft "upgraded" .NET -- and everything came crashing down.

Admittedly, it was a brittle program, and I was a noob, but it worked till then. I couldn't get answers. Documentation was difficult to traverse. Still is. I felt I was starting from scratch. Even my Windows manager relative told me I should just switch to Linux and be done with it.

So I did. For a few weeks I poked around Linux. Don't remember which distro it was but I wasn't feeling comfortable. It just didn't feel right. I had some old floppies for installing FreeBSD in a box and tried that. I don't remember anything beyond that but I do remember "FreeBSD Unleashed" being a godsend and Greg Lehey's book being helpful. FreeBSD felt professional from the beginning.

The rest is more history. Now I run a web dev shop.


----------

