• Welcome to the new Internet Infidels Discussion Board, formerly Talk Freethought.

The Programming Thread

I am currently a full stack Java developer, working with Java (of course), JavaScript, Bootstrap, AngularJS, ReactJS, and React Native.

Nice. I'm currently building my first ReactJS app (with Django backend), with aims to expand into React Native if the web app succeeds. Before this, my web projects only required jQuery.
 
Last edited:
I first learned programming in the '80s, and taught myself BASIC in Junior High. I wrote a program to roll up D&D characters for me, and a few very basic games like hangman. I was working on an ambitious text parsing game in the vein of Zork, when I started High School and discovered girls, parties, and parties with actual girls showing up at them. I forgot about programming pretty quickly. After graduating HS, then joining and leaving the military, and getting married, I rediscovered my love for computers, and went to college to learn programming.

I got an AS in Programming and Analysis in 1993, as well as A+ and Network+ certifications, which lead to doing computer repair and network setup for the next 10 years. I initially made enough money to open my own repair shop in 1998, but closed that down in 2002 as I was losing money and had to take a tech support job to make ends meet. So, I did tech support for a few years, before I got a job doing PHP development in 2005. I left that job a year later for a tech support job that paid a bit better than the PHP job, and was closer to home. That led to a Software QA job with the same firm less than a year later, and I started writing Perl scripts for QA automation. From there, I continued building my resume and honing my software automation skills.

In 2012, I was fortunate enough to be on a great software development team that was willing to help me become a Java Developer. I am currently a full stack Java developer, working with Java (of course), JavaScript, Bootstrap, AngularJS, ReactJS, and React Native. Given my background in automation, I tend to get shuffled around between teams at my current employer, landing for a few months wherever they are failing to get the project properly automated. It tends to keep things fresh, as I always make sure I am also learning whatever knew tech the team is working on before moving on.

I am currently a full stack Java developer, working with Java (of course), JavaScript, Bootstrap, AngularJS, ReactJS, and React Native.

Nice. I'm currently building my first ReactJS app (with Django backend), with aims to expand into React Native if the web app succeeds. Before this, my web projects only required jQuery.

Java is where the money's at in my town. Something that I made myself aware of before I graduated and made sure to get the 'Java Stamp' on my resume from one of my internships. That worked out well as it got me into 3M as a Java developer out of school, which is a major company to get on your resume.

The project 3M had me on was a career changer too, more or less got to act as programmer/designer/architect/business analyst/trainer for the app we built. Granted I probably did a terrible job because they were asking way too much of my experience level, but I walked out of that job with an enormous amount of relevant insight into the field.

In any case I'm now probably bordering on senior level in Java, although would likely be hired as an intermediate. Where I'm at now doesn't do much industrial strength Java, but they have a host of small Java apps that do various things. Every now and then they'll have me build something to parse some data sets, or do some reporting. Unfortunately not getting a lot of current stuff like React or Angular anymore, but I try to tinker with that stuff in my off time to stay current.
 
I have a lot to talk about here.

My first programming language for serious work was Fortran. For anyone not familiar with it, it's a C-like language that's the ancestor of all the high-level languages. I used that in my graduate years and for a few years after that. Then I ended up using C and then C++ for various projects that never went anywhere.

I also did some reverse engineering of some game-data formats: Bungie's Marathon series, Bungie's Pathways into Darkness, and the earlier Tomb Raider games. I also created map viewers for those games, using OpenGL for 3D graphics. I also created a Tomb-Raider scripter using Java, an app for #2 and #3. I even created a texture-archive creator for id's Quake 1.

When Bungie open-sourced the Marathon 2 engine, I and some others got to work on it as "Aleph One" (next after Marathon Infinity). I lifted a lot of size limits, did a lot of other such fixes, and implemented OpenGL graphics rendering. The Marathon and PID engines were typical of early to mid 1990's indoor 3D-game engines, with their horizontal and vertical surfaces -- that makes the texture mapping relatively easy compared to that mapping for some general orientation.

I did most of that work in C++, though for the Tomb Raider viewer, I got into Objective-C to use the OSX "Cocoa" GUI widgets.

More recently, I have learned Python, and I've used it for collecting data from webpages and various other tasks. I've written Python versions of several vote-counting algorithms, to see what they are like. For preference voting and proportional allocation, that is a far from trivial problem. I've also used Python to make plots of the planets' orbit precessions over the last million years -- those patterns are very Spirograph-like.

I've created some OSX-native apps, like a Globe Viewer for visualizing continental drift, a Sudoku Solver that uses some of the simpler algorithms, an X11 Colors app that looks for named web-browser colors closest to some selected color, and also an Image Measurer for getting positions from an image file. I click on positions in the image and it collects those positions. I've also added the ability to rescale the position values, to get from image coordinates to graph coordinates.

My Science and Math Stuff and Software that I have written contains some of what I've done.
 
Some of my favorite software is computer-algebra software. At my age, I need something like that :(

I started out with Macsyma (now Maxima), and I now use Mathematica. It's rather pricey, but I hope that I can be forgiven a few indulgences.

I've written Mathematica code for doing a variety of things. Perhaps my biggest achievement there is my Semisimple Lie Algebras package. This is some rather arcane math that's important in particle physics, especially in Grand Unified Theories and the like. So I could work out how GUT's break down into what we observe. The code is in Mathematica, Python, and C++. The Python code ran about as fast as the Mma code, but the C++ code was at least 10 times faster, even though the C++ version required much more coding.

I've also verified some general-relativity solutions and several other such important solutions.


I've also done HTML / CSS / JavaScript coding, like making a symmetry demo, a spherical Delaunay / Voronoi demo, and also some software for simulating color blindness in webpages and elsewhere. Firefox can add SVG filters to a page, and that's what I used. Among what I simulate is dog vision.
 
lpetrich, I tried to "reverse engeneer" Quake2. Wrote an OpenGL model viewer and part of the level viewer.
Hacked english-russian dictionary for DOS and then used it to write my own for unix.
 
You guys are more motivated than I am. I'm relatively confident that I now have the skills to do some complex stuff, I just don't really care or want to. Programming is one of the lesser things I'm interested in. While I like it, my interest in it only extends as far as making sure it continues to be my bread and butter.
 
You guys are more motivated than I am. I'm relatively confident that I now have the skills to do some complex stuff, I just don't really care or want to. Programming is one of the lesser things I'm interested in. While I like it, my interest in it only extends as far as making sure it continues to be my bread and butter.

I tend to be quite bipolar about programming, and my attitude, if graphed, would likely be all over the map. When I get assigned to a new project, I am quite often of the mind that I am the greatest programmer on the planet, they need me on the team because everyone knows how awesome I am, I am going to kick the team into overdrive, and man do I ever love my job. About two days into the new project, my attitude totally flips. I am by that point struggling to configure my tools for the project, or struggling to learn the new tools, while also staring at the code until my eyes cross, trying to make sense of the current project code base. At that point I am thinking that I am the worst programmer on the planet, I have no fucking clue what I am doing, I am going to be exposed as an outright fraud, and I hate my job. Then I slowly get my feet underneath me, my confidence builds, and my attitude improves. A few months in, and I am as confident as ever, and back to loving my job. Then management pulls me for another project, and the whole thing starts over again.

I honestly don't feel very motivated most of the time. Sometimes a thorny problem will keep me up at night, but other than that, I don't take my work home, or spend my weekends learning the cool new tech like some of the younger developers seem to do. That feeds into the lows of my bipolar programming cycle, causing me to doubt my career choice, but I really don't know how to do anything else valuable, so I keep on until things get better.
 
You guys are more motivated than I am. I'm relatively confident that I now have the skills to do some complex stuff, I just don't really care or want to. Programming is one of the lesser things I'm interested in. While I like it, my interest in it only extends as far as making sure it continues to be my bread and butter.

I tend to be quite bipolar about programming, and my attitude, if graphed, would likely be all over the map. When I get assigned to a new project, I am quite often of the mind that I am the greatest programmer on the planet, they need me on the team because everyone knows how awesome I am, I am going to kick the team into overdrive, and man do I ever love my job. About two days into the new project, my attitude totally flips. I am by that point struggling to configure my tools for the project, or struggling to learn the new tools, while also staring at the code until my eyes cross, trying to make sense of the current project code base. At that point I am thinking that I am the worst programmer on the planet, I have no fucking clue what I am doing, I am going to be exposed as an outright fraud, and I hate my job. Then I slowly get my feet underneath me, my confidence builds, and my attitude improves. A few months in, and I am as confident as ever, and back to loving my job. Then management pulls me for another project, and the whole thing starts over again.

I honestly don't feel very motivated most of the time. Sometimes a thorny problem will keep me up at night, but other than that, I don't take my work home, or spend my weekends learning the cool new tech like some of the younger developers seem to do. That feeds into the lows of my bipolar programming cycle, causing me to doubt my career choice, but I really don't know how to do anything else valuable, so I keep on until things get better.

Yea seems to be a common pattern and definitely something I've gone through a lot. Especially when I was in school because our classes were constantly pushing us out of our comfort zone. These days I'm pretty comfortable with the maxim that outcomes = effort * time. I've never *not* solved a problem, so usually I recognize that I'll get it eventually. Just have to make sure business people aren't giving you stupid deadlines.

That said, when I was on the above mentioned project at 3M, we were tasked with solving an extremely hard problem so there were some bad times there (the stuff of nightmares, really). Some of the most stressed out I've been. They had me on rolling contract with no guarantee of permanency though so I released the app and bounced. Actually took a step backwards in terms of tech and I'm glad I did, I'm reasonably sure I now haven't experienced a day of stress in almost two years, and I make more than I did before.
 
What do people do to get enough exercise despite a desk job?

I'm finding this is the sole thing that I'm missing in my life these days, all is pretty good except that inactivity can cause a bit of lethargy.
 
What do people do to get enough exercise despite a desk job?

Housework.

I find myself doing the same thing, although it can feel like I don't really get the chance to push myself a lot.

I try to take the stairs as often as I can at work, and walk for at least 30-40 minutes every day, along with housework, but still doesn't feel like enough. I know I could just go for more routine walks after work but you kinda get that 'on a rat-wheel' vibe after a while.

I started running on my lunch-breaks a few weeks ago, but our winter is a bit too icy right now for that, unfortunately.
 
I know I could just go for more routine walks after work but you kinda get that 'on a rat-wheel' vibe after a while.

I don't like exercising for the sake of exercise; I'd rather spend my time doing something productive or fun. I used to lift weights but I couldn't overlook the fact that I was dedicating several hours a week to picking up heavy things and putting them down again in the same place.

I used to do martial arts and play sport but I ruptured my ACL years ago and couldn't afford to take time off work to get it repaired (I was working in retail).
 
I know I could just go for more routine walks after work but you kinda get that 'on a rat-wheel' vibe after a while.

I don't like exercising for the sake of exercise; I'd rather spend my time doing something productive or fun. I used to lift weights but I couldn't overlook the fact that I was dedicating several hours a week to picking up heavy things and putting them down again in the same place.

I used to do martial arts and play sport but I ruptured my ACL years ago and couldn't afford to take time off work to get it repaired (I was working in retail).

Agreed, I'm the same way. Much easier for me to go for a walk if there's a purpose to it

Thinking off the cuff, I wonder if it would be useful to do something like go for a walk with the explicit purpose of listening to music, or a podcast, or something. Kill two birds with one stone.

It'd be a lot easier if I had room for a treadmill, then I could walk and watch sports. But alas we're currently limited to a crappy stationary bike.
 
I usually don't find it kosher to talk about work in public, but this one's too good.

I was on helpdesk today and got a long e-mail chain where a 'Software Architect' from Cerner Corp (our software vendor) was organizing a prod promote for a small change to one of our scripts.

The change makes it into production, one of our business analysts validates and gives it the go ahead.. and then a guy on my team just randomly checks out the script and realizes that the change that was made had no impact on the file.

Then Cerner's 'Software Architect' chimes back in and says he 'left in the change because he wasn't sure what it did', and that we could back it out.

I have never laughed harder in my four year career. Just an utter fail on so many levels.
 
I really don't understand this proliferation of languages.

Any of our more experienced folks like to take a crack at this? I understand that programming has evolved from the days of BASIC, Pascal, FORTRAN and the like to the modern high-level languages, but reading through this thread, I find names of languages I've never even heard of and while not a programmer myself, I am an engineer (electrical) and have heard of quite a few. Is it mainly a case of either some software engineers and/or companies coming up with their own ideas and proprietary languages, or something else?

As for me, I took classes in BASIC and Pascal in the mid-/late 80s and then didn't do much with programming until I went back to school in the mid-2000s and had to learn about C, assembly*, and MATLAB. At work, I got introduced to LabVIEW, which helps run automated tests by talking to test equipment over GPIB lines and more recently had to deal with another test program written in QBasic. During my layoff time, I started trying to learn Python and later a bit of Javascript, but didn't keep up with it.

*there was this nightmare time when I'd gone back to school for my EE degree and the 4-year school accepted an Excel/MATLAB class credit as a pre-req for another class which changed before I got to it to be a C/assembly class. I joked that it wasn't merely Greek to me, but rather it was like me having to translate from Greek to, say, Portugese or something. I knew neither, so trying to translate between both was ... challenging, shall we say. I actually found assembly pretty straightforward and I think that saved me.
 
I really don't understand this proliferation of languages.

Any of our more experienced folks like to take a crack at this?
I understand that programming has evolved from the days of BASIC, Pascal, FORTRAN and the like to the modern high-level languages, but reading through this thread, I find names of languages I've never even heard of and while not a programmer myself, I am an engineer (electrical) and have heard of quite a few. Is it mainly a case of either some software engineers and/or companies coming up with their own ideas and proprietary languages, or something else?

As for me, I took classes in BASIC and Pascal in the mid-/late 80s and then didn't do much with programming until I went back to school in the mid-2000s and had to learn about C, assembly*, and MATLAB. At work, I got introduced to LabVIEW, which helps run automated tests by talking to test equipment over GPIB lines and more recently had to deal with another test program written in QBasic. During my layoff time, I started trying to learn Python and later a bit of Javascript, but didn't keep up with it.

*there was this nightmare time when I'd gone back to school for my EE degree and the 4-year school accepted an Excel/MATLAB class credit as a pre-req for another class which changed before I got to it to be a C/assembly class. I joked that it wasn't merely Greek to me, but rather it was like me having to translate from Greek to, say, Portugese or something. I knew neither, so trying to translate between both was ... challenging, shall we say. I actually found assembly pretty straightforward and I think that saved me.

I guess with millions upon millions of programmers out there, and a large number of use cases, new languages are bound to pop up. Languages typically aren't arbitrary and each one along with it's framework (if it exists) is usually more or less suited to some purpose than others. So the variety of programming languages is probably driven by a need for different types of languages and frameworks.

Although in practice you'll find that the vast majority of of programmers around the world are likely coding somewhere in a set of 10 - 20 languages. Java, PHP, .NET, C++, JS and it's associated libraries being most common.. you won't find many programmers who can't code in one or all of these.
 
I am not a paid programmer but I successfully forgot FORTRAN. Use C++ for my home projects and a lost of shell sctipts.
In the past I had to do python a little.
I really don't understand this proliferation of languages.

A lot of it is tossing aside the baggage and flaws that are baked into the old languages. There aren't really that many languages in non-legacy use. Scripting languages have a bit more variety because they're smaller so more of them sprang into existence and it hasn't been long enough for a champion or two to emerge.

There's also some of the not-invented-here syndrome, for example Apple going it's own way for stuff to run on it's devices. I think they saw the lack of compatibility to be a feature. (Harder to port an iPhone/iPad app to android.)
 
99 Bottles of Beer | Start -- that site has programs for printing out "99 Bottles of Beer" in some 1500 programming languages. I think that that was chosen because (1) it exercises more of a language's capabilities than printing out "Hello, World", capabilities like conditionals and loops, and because (2) its output has some entertainment value.
 
I started programming in the mid 1960's and it has been both my profession and hobby ever since. (I've also designed digital circuits — somewhat similar to low-level coding — and troubleshot mainframes — somewhat similar to debugging complex software systems.) I've worked in a variety of domains, especially kernels, device drivers, and image processing. Toward the end of my career I was an algorithm designer — my "deliverables" were patent applications, not code. Now I've been retired for several years but still dabble at coding quite a bit.

I've written code in over a dozen different machine languages, if custom microcodes are included. My high-level language repertoire is much more limited. I learned C in 1980 and it quickly became, and remains, my favorite language. (I don't like Javascript but have written some for my personal hobbyist website.)
 
Back
Top Bottom