Software Developer Mega Thread

Programming God Mantra

:point_up: Stolen from Uncle Bob Martin :wink: Maybe we all strive to have that level of experience.

What’s up programmers, developers, and engineers of Level1Techs? What are you working on? What sort of job do you have? What do you enjoy working on? What’s your favorite programming language? What’s your favorite programming paradigm? What’s your favorite reference, book, or tool to assist you with programming? Do you enjoy web programming, systems programming, network programming, infrastructure programming, or a mix?

I’m hoping we can have a thread year round besides Devember and help each other with programming related questions and tasks that don’t involve their own thread.

I will start!

I am working on a deployment pipeline to build our code base and deploy it across 40 servers. The software has been altered from using MSBuild and MSDeploy to using .NET Core utilities. Containers are likely in the future, but we’ll cross that bridge when we get there.

I work as a Build/Release Engineer for a data analytics company. They call it DevOps Engineer here but it’s the same thing as B/R Eng.

I enjoy working on the infrastructure side of things. I’ve considered moving into embedded systems or operating system development but I really need to beef up my chops. I’ve been told that OS/RTOS development is boring, so I may just stay where I’m at lol.

My favorite programming language is probably (modern) C++ right now. I can’t use it for much but what little I can do is pretty cool.

Favorite paradigm is probably Declarative Programming. But I also like Object Oriented Design and Functional Programming.

My favorite book is Computer Science: Distilled. At a glance look at the common algorithms used in Computer Science and programming. Favorite tool is the Bash terminal emulator!

I enjoy a mix of things. My primary experience is web development and infrastructure development. I would love to get into systems programming but I need more networking and systems knowledge. Hoping to make the switch from Ops to Dev in a year or so. AMD is up the street :smiley:

14 Likes

Pretty cool Bash trick if you’re writing a script for a developer:

https://vaneyckt.io/posts/safer_bash_scripts_with_set_euxo_pipefail/

Adds a sort of fail safe and error handling for shell scripts. Developers familiar with writing Ruby or Java might be more prone to failure in something like Bash where errors can sometimes be ignored.

Using set args pipefail at the beginning of your shell scripts can help prevent a lot of the ignored errors that can wreck havoc on your environment.

7 Likes

Thanks for that. I have some scripts that have not survived to the modern bash implementation. Sometimes they fail outright. sometimes they fail in undefined ways.

1 Like

Hi my name is Zac. i’ve been sober for six days and I make shitty SDL roguelikes and broken console dijkstra calculators in C++ using vim or visual studio when i’m not bombing dev interviews and studying for exams.

4 Likes

Yes! Always frustrating when that happens, especially if it’s running as a Co-proc or background task and you can’t easily see what happened lol.

Glad you enjoyed it! Hopefully it’ll benefit you in the future!

Hey Zac!

Lol that’s awesome. Plan on making a non-Google GPS one day?

THE TRUE MASTER RACE

Do you use Visual Studio Visual Studio or VS Code? I, too, struggle with dev interviews :sweat_smile:

Interview Panel: “Make a linked list with 3 nodes and loop through the data, printing the output.”

AdminDev: You want me to do this for a job that’s primarily fixing div tags?

Interview Panel: " :angry: :angry: :angry: "

AdminDev: :confused:

5 Likes

Hi, I’m Denis, from Brazil.

I’m on a college course called “Systems Analysis and Development”, which is something between a technician and a bachelor, it’s weird and only exists here, I guess.

I know a little bit of Java, C and almost nothing on C++(will improve that soon enough).

Don’t work on the field yet, but will eventually.

3 Likes

I work with development of hardware and software, I’m also the only server admin. First day at work, I was told build an iot device for continuous data logging to cloud. They have nothing done other than the idea.
So that’s embedded hardware and software up to and including the web frontend where customers can use the data we’ve compiled for them.

What I’ve learned from programming and tinkering for 25 years. The programming language is irrelevant, it’s all the same. It’s just the syntax and perhaps also flow that changes. Research the languages available to find the best suited for the problem, and learn it. I always begin making small programs to solve small problems, and after a month or two, I start working on main program.

Two months ago I got by in bash scripting, now I have automated container orchestration, for the system I’m building. To get there, I made small scripts to simplify my daily things, and make cheatsheets for yourself.

2 Likes

inb4 risc nerds

1 Like

Did someone say MIPS?

1 Like

A three node linked list is easy af even without STL. I got asked a graph traversal question the other day at an interview and bombed harder than hiroshima. I actually started writing a linked list traversal out of habit under stress.

Certain companies or professors want you to use Visual Studio so half the time i’m using it with the full blown community build not just vs code. Any time i’m told to use eclipse/vs code/sublime or whatever I just use vim.

1 Like

set -x is usually overkill unless you’re actively debugging (and even then can be too much to look at).

If you set -e but have a command that you are ok with failing, put || : after it.

If you set -u but want to check if a variable is set as a condition, you have to do this little dance:

[ ! -z "${foo-}" ] && echo “foo is set” || echo “foo is not set”

6 Likes

This is neat

4 Likes

I’m cotton. I’m self taught. I started really learning how to program by writing C++ using vim, writing make files and building and debugging using a shell, gcc, valgrind, etc. I did this all using Linux.

The two most important software development books I’ve read were Introduction to Algorithms and Gang of Four - Design Patterns

I really dislike:

  • Duck typed languages,
  • Languages where scope is determined by INDENTATION,
  • Non-squiggly bracked langauages.

With that said, I tolerate Ruby.

C has a soft spot in my heart because, not only do like to program in it, but really is the language that has taught me the most about how to program and literally how computers work. Plus, C was the language I used when I was learning how to implement data structures and algorithms, so it really gave me an idea how those work conceptually and how to write them from scratch while playing in hard-mode.

However, the one I like to use most for work is PHP7. PHP7, when use properly, seems to be like Java without any of the bullshit. I also like writing Javascript to prototype ideas because it lets me do whatever I want, plus prototypal inheritance can be useful when you’re just banging something out to show that the “idea” works. I have also maintained code bases written in perl.

I’m very handy with bash and like to use it for slash and thrash programming/automation tasks and only use languages like PHP or Perl when it’s actually needed.

I like programming challenges, logic puzzles and riddles. Also, I truly love learning new things. Lastly, I’d like to get more involved with contributing to open source software that is useful for other FOSS lovers.

Adios

6 Likes

Beautiful math

2 Likes

Been rewriting my old LinuxStatus project into C++ from python and want feedback

LinuxStatus-CPP.zip (525.5 KB)

Compilation (goto into src directory)
g++ *.cpp -o ../main.out


Was built entirely for me because im way too lazy to actually check these things manually XD

1 Like

Automation is key in today’s world. One person just cannot do everything by themselves without a little help.

2 Likes

Not everything is added that i would like but its good enough for my needs atm.

Features

  • Systemd failed units checking
  • Dmesg error warning along with the varying levels of warning
  • disk usage checking with a option -t to set the threshold in percent(int)

LinuxStatus-CPP.zip (540.4 KB)

1 Like

hi I’m Gek, pronouns are AH, AHis, AHim.

I design and implement embedded systems that are supposed to automate your house. The stack and tools are: C, FreeRTOS, GNU GCC and binutils, as well as, Vim and Make, with a tiny bit of Python.

I also enjoy game dev and reinventing the wheels. In my spare time I implemented games, tools, embedded, scripts, personal websites and blogs and lots of other unfinished projects.

Did both low and high level programming, prefer low-level for systems, and high level for scripting. My favourite programming paradigm is “don’t follow paradigms” paradigm. My favourite style of programming is the one that works and is readable :wink:

All that said, my preferred lang is C and, I endorse UNIX philosophy in most cases.

5 Likes

Mips is bogus

MIPS still makes the world go round… for now.