DEV Community

edA‑qa mort‑ora‑y
edA‑qa mort‑ora‑y

Posted on

I've been a programmer for over 20 years, watched the internet the grow up, ask Me Anything!

I've worked on so many projects in so many domains that I think I've lost track of all of them. I've worked in a few different countries, starting in Canada, working my way over to Germany. I've mainly worked in startups, but have had some medium to big company exposure. I've lead teams, I've followed, I've worked alone. I tend to work remote now. I do streaming, videos. I had a compiler once.

I write a lot. Fiction and non-fiction.

I'm a mentor (Hint: always looking for new students :)

Top comments (38)

Collapse
 
jess profile image
Jess Lee

How many more students are ya lookin' for?! 😉 cc: @liana

I feel like we've gotten to know you through your articles, but I'd love to learn about the fiction that you write! What's the story there? ...pun intended...😅

What cultural differences did you notice between working in Canada vs. Germany?

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I just got started again with the fiction. I have only a few pieces uploaded so far on medium

The biggest cultural difference between Canada and Germany is the individual drive to do things. In Canada, and the US, people seem more driven to get stuff done, to experiment, to try new things. Germany leads heavily towards get job at big company. THat isn't to say there is a lot of people trying things, just that it's not really the mainstream culture.

More problematic, even after all this time, is stores closing early and on Sundays. It's impossible to satisfy round-the-clock programming cravings! :)

How many students, well, I seem to have time available now... :)

Collapse
 
tailcall profile image
Maria Zaitseva • Edited

Are you still keeping track on recent trendy technologies? Or there was a point in your life when you said to yourself "meh, I think I know enough"? If so, how and when that happened?

Also, do you think writing code is a lot like writing prose, or it isn't anything like that?

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I look up new technologies only really as I need them. Whenever I start a new project I'll look at what's around, but I don't keep up on stuff just for the sake of it.

No, generally I don't see a lot of similarities between coding and writing. I don't think there are a lot of skills that overlap, or can be easily transferred between the two. I learned both of these, but I learned them separately. Perhaps a few things, like pattern recognition and structure, bear some resemblance. Maybe even some brain regions trigger similarily, but it's just too much of a difference to say they are similar.

Collapse
 
codevault profile image
Sergiu Mureşan

Nowadays we have Git, Jenkins, Trello, amazing IDEs and many other tools that help us immensely in our programming career, sometimes without even realising.

What were you using 20 years ago?

Collapse
 
jfrankcarr profile image
Frank Carr

I've also been programming professionally for almost 30 years.

Back in the early MS-DOS days I used a fairly powerful ASCII text editor that was a subset of the once popular Word Perfect word processing program. I had a large set of templates I had created for programming in MASM and C.

Microsoft QuickBasic had its own IDE as did Clipper and other major DOS development tools.

When Windows development caught on in the early 90's, early versions of Microsoft Visual Studio appeared but it was initially only for C/C++ and MASM coding. Visual Basic had its own IDE and, initially, stored code files in a proprietary binary format. VB's remained a bit of a pain to work with and this created a market for add-on tools. Most of them are long gone now, much to the dismay of us who still have to do occasional work in VB6.

In the late 90's, web development tools like FrontPage and Coldfusion appeared. These left a lot to be desired.

Collapse
 
nancyd profile image
Nancy Deschenes

The best IDE at the time was, without any doubt, InterfaceBuilder for NEXTStep. That was some seriously awesome, ahead-of-its-time development environment. Too bad it only ran on specific hardware/OS.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Please don't remind me of products like FrontPage and Coldfusion. I don't think I can handle those memories! :)

I was actually working on a competitor to those at the time.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

IDEs were quite common. I had to kind of rely on them for the help documentation, since otherwise there was no way to lookup things. Most of the "stuff" an IDE can do now it did in some form before. They've tacked on more features, but I don't see any magical growth there -- possibly why I don't use an IDE anymore (or rather, my desktop is my IDE).

I went from manual source copying and versioning, to CVS/VSS, then on the big improved SVN, then git/bzr came later, which were pretty big changes. They finally allowed for proper branching and versioning, and remote work. (I prefer bzr to git, easier to use, harder to screw up)

A lot tools, like Trello, would have desktop equivalents that worked on the local network. I still believe in such tools and am not a fan of companies hosting everything in the cloud -- private clouds are okay.

Collapse
 
ghost profile image
Ghost

Big props to the Borland Turbo C/C++ IDEs!

Those were nice IDEs back then. As for version control, well...

Collapse
 
imben1109 profile image
Ben • Edited

Do you think 20-year experience is valuable?

How do you keep technical skill update?

What you think is most important for the career?

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

How do I keep my skills up-to-date? I can't answer directly, let me try to explain.

Programming consists of a series of skills and concepts. There are specific skills, like Java, and more generic object-orient coding skills. One could know REST+HTTP and OracleDB, or one could understand network protocols, encoding, and relational DBs.

Once we remove all the marketing terms and fancy words, programming has advanced rather slowly and predictably. At some point I started understanding the underlying concepts. It takes less and less effort to adopt new technologies. I don't really need to keep up-to-date, as I can sit down with "new" tech and adapt quite quickly.

Collapse
 
jfrankcarr profile image
Frank Carr

I actually find new tech easier to learn than having to go back in time and learn/relearn old stuff like VB6 and PowerBuilder, especially when it involves maintaining legacy spaghetti code.

Collapse
 
jfrankcarr profile image
Frank Carr

The experience is and isn't. It is probably detrimental to getting a job at a "cool" tech start-up or the like. They just don't see having lengthy experience with a wide variety of technology useful. However, long and varied experience is usually viewed much more favorably in the non-tech corporate world where legacy code is common and having someone on staff who can effectively link old and new is valuable.

As for staying up to date, it's a matter of picking something to learn and developing a personal project around it. If I can, it will be a work project but that's not always possible. The trick is picking which technology is worthwhile to learn. Various tech sites, including this one, are helpful in this area.

The most valuable thing to do career-wise if you don't want to move into management and keep coding is to always be learning new stuff. Don't become stagnant.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Experience is valuable. Years worked is not. I spent most of those years trying new things, switching jobs, changing fields, using different tools languages, and even hopping countries. I've been fortunate enough to have these experiences -- I realize not everybody will get that chance.

It's kind of a hard, or sad situation though. It's not unrealistic that somebody with 10 years of work could have less breadth of experience than somebody with even 3-4 years of work.

Gathering valuable experience requires a concerted effort. This article from a friend of mine goes into detail about this: does practice make perfect

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Important for career?

I consider diversity to be extremely important. This relates a lot to learning those underlying concepts. If you don't try different tech, different languages, different domains, you don't be able to find those underlying patterns.

Sticking with one language, one technology, one domain, I think is a guarantee of stunting one's career.

Taking the time to try things, and fail at things, is also important. Failure is a big part of programming, and we need to be able to deal with, and make sense of what happened.

Stress relief is vital. Find a way to relax. Find something else to do. Pushing yourself at programming is hard work on the mind and body. If you don't have a way to reduce stress you'll suffer.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I've used CodeMentor for specific things before, like debugging or pair programming. I also enjoy assisting people learning new things.

Mentoring is done via chat, email, and voice calls or screen sharing. Beer-And-Stool mentoring available for those in the Munich area. :)

For those just needing some stress release, I also do some relaxation and mindfulness training. About half of all programming problems can be solved this way I think.

Collapse
 
gmartigny profile image
Guillaume Martigny

Can you expand on how relaxation help you as a developer ? How can it solve problems ? What's the basics if one want to try ?

Thread Thread
 
mortoray profile image
edA‑qa mort‑ora‑y

Relaxation, and the various ways to achieve it, like mindfulness, meditation, and exercise, reduces your stress. Stress is bad for developing for numerous reasons:

  • it reduces your ability to focus, often directly through anxiety, or through preventing you from eating right, thus depriving yourself of minerals needed for proper brain function
  • a stressed body endures physicals pains such as headaches and muscle stiffness than limits how many hours you can work, particularly on a computer
  • stress reduces sleep, leaving you tired and unable to concentrate, it can also inhibit recall -- a critical skill in working on code

Relaxation gives a pause to your day, giving your body a physical chance to recover, and your mind some clarity. Often coding challenges can be solved by freeing your thoughts of clutter, taking a step back, and calmly reevaluating the situation.

Here's a quick, and basic activity. Sit in a chair away from your desk, preferably a quiet area (noise makes this harder). Set a timer on your phone for 5 minutes. Close your eyes and try to think only about your breathing until the alarm rings. Increase the time to 10, or 15 minutes as you do this.

Collapse
 
iamkalai profile image
Kalaiarasan Pushpanathan

What was life before and after Google search? How much programming has changed after Google, stackoverflow etc?

Collapse
 
jfrankcarr profile image
Frank Carr

Prior to the internet and probably up until around 2001 or so, the four main sources of programming information were books, CD-ROMs, BBS's and message boards on paid services like Compuserve. You could get a lot of in depth information from these sources, but it was expensive. It wasn't unusual to spend $50 or more on a book/CD-ROM combo or to spend more than $100 a month on long distance calls and Compuserve/AOL/GEnie subscriptions.

Other than the cost, the big difference now is in the width of information. If you need to know the answer to a very specific question, it is likely that someone has asked it and posted an answer somewhere online. In the old days, once you got off the beaten path, you had to figure out a lot on your own.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

What Frank said. :)

Collapse
 
sadpixel profile image
Ishan

What's the main difference in programming culture today vs. 20 years ago?

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

It's hard to isolate precisely 20 years ago, but I'll give you an idea of when I started, which was earlier than that.

Imagine programming without any online resource, having to find a library or bookshop to get references. No package managers, no online tools, no real web. Information was scarce!

This forced an extreme "try stuff" approach, since you didn't really have any other choice. It was also difficult to foster any kind of good practices, or share knowledge, a lot of the early work I did was kind of in the dark. I shudder to think what type of code I produced 20 years ago.

There were likely less distractions though. No Twitter nor Facebook to waste time.

There were news groups and some limited chat. Around 20 years ago this stuff started being more common, as more people had permanent connections.

I started writing tools for the web when it first started. It was plain to see how much of an impact it'd make, not just to programming, but to society as a whole.

Though, I did, and still do, C++ programming. And the cycle of code, compile, get mad, hasn't changed. :)

Collapse
 
jfrankcarr profile image
Frank Carr

Project management was primarily waterfall. If you were really fancy, you called it SDLC but still it was waterfall. There was no Agile, no test driven development, no continuous integration/delivery. In the early 90's some people were talking about iterative development that eventually became Agile but it wasn't widely accepted.

Version control was relatively rare in the PC development arena until the mid-90's. This meant having your code overwritten and other such problems were common and usually resulted in interpersonal conflicts in a team.

Deployment of an application meant creating a setup program that could take into account the wide variety of personal computers. It had to fit on diskettes and later CD-ROMS. Disk/CD duplication was a big and expensive thing so you had to make sure everything was right, but it often wasn't. Patch disks had to be made although some companies had BBS systems that users could download smaller patches from at a screaming 2400bps.

The biggest online programming knowledge resource was Compuserve and BBS systems. Compuserve was quite expensive and so was long distance calling to BBS's so it became common to download/upload messages in bulk to keep this online time short. It was quite a perk when an employer would pay for this.

It was also common for programmers to have several large reference books on their language(s) of choice. Examples from these books had to be copied by hand until some of them started being sold with companion CD-ROMs. I threw my old dogeared and now mostly useless reference books away a few years ago to declutter my home office.

Collapse
 
lakuapik profile image
David Adi Nugroho • Edited

What is the most popular operating system people used to code in 20 years ago?

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Windows was a lot more popular for development than it is now. Microsoft had, at one time, taken the forefront in making a system that was appealing to developers. They lost that over the years.

Collapse
 
jfrankcarr profile image
Frank Carr

My take is that Microsoft concentrated most heavily on the corporate market to support ongoing Windows and Office installations and put development, especially web development, at a lower priority. This gave an opportunity for other web based ecosystems to develop, most notably LAMP. They've reversed course somewhat now but are playing catch-up.

Collapse
 
papaponmx profile image
Jaime Rios

Do you have any experience working remotely? How has it changed in during your career? What are some mistakes you observe young developers make frequently?

Collapse
 
jfrankcarr profile image
Frank Carr

Working remotely was more possible early in my career than it was in the middle part.

In the late 80's to early 90's, shared network resources, like databases, weren't common in the PC world. This was the area of mainframes for the most part and PC apps were largely standalone and databases were local. If a developer had a laptop (very expensive and underpowered in those days) or a luggable they could work at home. My first work development system was an IBM PS/2 Model 70 Portable. While my employer at the time didn't want us to work from home on a regular basis during the work day, we were expected to work at home at night and weekends from time to time. Other people I knew had more flexibility.

Once networked databases became common, working at the office became necessary since most companies did not want to invest in the infrastructure for remote developer access and most developers only had dial-up internet at home. This often meant long hours in the office, trying to complete projects.

Starting about 2003-2005 or so, remote work became more common, not much different than it is now.

What mistake do young developers make frequently? Assuming that they already know everything and not getting in sync with development team. Really, it's the same mistakes senior developers will often make when coming into an established team.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I've been working remotely for most of the past 10 years. Before that I worked in an office with the team.

Ideally I'd like to work remotely like 5-9 days in a row, then one day in the office. There is some aspects of office life I miss.

I'm productive at home. This is a mistake many people make: they think they can work remotely. It appears a lot of people cannot do it. There's something missing for them. It limits how much of programming can truly be done remotely -- the number of people that can work remotely seems far less than those that can't.

A common, and understandable, mistake I see is getting locked into a single set of technologies. You need exploration. You need to try new things in new domains to get a full feel of what programming is.

Collapse
 
twitchgfx profile image
AndyGFX

Have you experienced any burnout?

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I should probably admit that I have in the recent years. It can be challenging to face the same problems repeatedly knowing you've solved them before.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.