Page 1 of 1 [ 12 posts ] 

microprogrammer
Blue Jay
Blue Jay

Joined: 1 Jun 2023
Age: 39
Gender: Male
Posts: 90

09 Jul 2023, 10:41 am

About a year ago I went back to software development after about 7 years doing other things. I took a web development job, because those are plentiful and the job was appealing. I enjoy web development, but I've also always been drawn towards lower level computing. Is there anyone here who does C or C++ programming professionally? If so I'd like to hear about how you got into it, because I think I'd like to give it a try at some point.



theboogieman
Yellow-bellied Woodpecker
Yellow-bellied Woodpecker

User avatar

Joined: 3 Jun 2023
Age: 23
Gender: Male
Posts: 64
Location: Louisiana

18 Jul 2023, 1:22 pm

This is exactly what I do!

I do have an undergraduate degree in computer science, and in my Operating Systems class we worked on this educational OS called Nachos which was my first exposure to C++. As a musician though, I got really interested in writing DSP algorithms and I started writing delay and reverb plugins in JUCE. This helped me get C++ under my fingers in a domain that I actually understand.

Though if you have no experience in C/C++, I will suggest something controversial: learn Rust instead. I'm not saying "C/C++ is dead", it certainly is not and there are still plenty more jobs in those than Rust. What Rust does do well is it forces you to write code that isn't awful and unsafe, which is very easy to do when starting in C/C++. It also has an amazing book, The Rust Programming Language (often referred to as simply "The Book") which is available for free online.

More than anything, if you're like me and learn best when working in a problem domain you care about, ignore absolutely everything I have said up until this point and follow that! You want to understand operating systems? Play around with Linux or *BSD source code. You like music? Do what I did and write some plugins. You like building physical things? Build a dog feeder with an Arduino or something.

The world is your oyster. If it's getting a job you want, I suggest building cool things, then finding some creative way to show a company you respect and want to work for what you've been doing in your free time.

Safe travels! Let me know if you have any more specific questions :)


_________________
Take it easy, dude, but take it!


lm8
Butterfly
Butterfly

Joined: 17 Aug 2022
Age: 58
Gender: Female
Posts: 15
Location: Florida

21 Jul 2023, 3:34 pm

I programmed in C/C++ for years, but it's been difficult to get a job in for the last decade. It's been sidelined to jobs like embedded systems or IOT and isn't used much for other things anymore. Languages like Rust and C# are typically replacing it in some areas. Even though some AI libraries are written in C/C++, most end up using Python for developers to work with them. I happen to prefer working with C/C++. I use it in my job when I need to code something because I can prototype quickly with these languages. Others typically find other languages faster for them to work with and pick up. Guess that's one reason there are so many languages in use these days. If you're interested in practicing with your C/C++ skills, there are plenty of Free, Libre, Open Source projects out there that could use volunteers. It's easy enough to find a project written in C or C++ and send in a patch for a bug or feature addition. I keep my C skills up-to-date by working on various FLOSS projects. You can do web development with C/C++. There are options such as web toolkits, fastcgi and web assembly. With Android, there's an NDK that lets you work with C/C++. Plus, C/C++ libraries such as SDL and others, let you develop for a wide variety of platforms including desktop, mobile and web assembly. You can do pretty much whatever you can do with other languages in C/C++. Most people just prefer to choose other languages these days.



microprogrammer
Blue Jay
Blue Jay

Joined: 1 Jun 2023
Age: 39
Gender: Male
Posts: 90

07 Aug 2023, 8:00 pm

Thank you both for your very interesting replies. You've given me a lot to think about and research. I'm glad to hear you've both been successful in your areas of interest.

Also, sorry for my slow reply. I got wrapped up in some things and didn't make it back here for a while.



microprogrammer
Blue Jay
Blue Jay

Joined: 1 Jun 2023
Age: 39
Gender: Male
Posts: 90

02 May 2024, 9:32 pm

Just to follow up on this, I actually pretty much followed your advice about learning C/C++. A few months after my last post I quit my previous job then spent about six weeks doing learning projects to develop my skills and resume full time while finding and applying for jobs that interested me. I got lucky and landed a full time C++ job doing scientific computing with some GUI / application work, and I am very happy with it. I was worried about that first step of steering my career in the direction of C/C++ and lower level programming, but I've managed to do it and am very happy about that.



Fenn
Veteran
Veteran

User avatar

Joined: 1 Sep 2014
Gender: Male
Posts: 2,958
Location: Pennsylvania

08 May 2024, 8:31 am

I was doing some C programming yesterday. I wanted to get direct access to the windows clipboard and the api is in C. I tried to do it in python with ctypes but found it frustrating. As others have shared, C/C++ is interesting to embed and IoT programming. Also old fashioned companies like big Financials who started in C and C++ and don’t like change. My nephew started at a Financial and then got a job at SpaceX based on his business, C/C++ and leadership skills. It is good to know more than one language.


_________________
ADHD-I(diagnosed) ASD-HF(diagnosed)
RDOS scores - Aspie score 131/200 - neurotypical score 69/200 - very likely Aspie


microprogrammer
Blue Jay
Blue Jay

Joined: 1 Jun 2023
Age: 39
Gender: Male
Posts: 90

14 May 2024, 8:33 pm

I haven't messed around much with the Windows APIs. I was living fully in the Linux world for almost 15 years, keeping Windows as a dual boot for those rare occasions when I needed to run a Windows-only application. That's starting to change now, because a lot of C++ applications are written for Windows. Or maybe I should say a lot of important Windows applications are written in C++.

I think C/C++ will always be important for high-performance and low-level applications. There are newer languages trying to gain a share in those markets, like Rust or Zig, but I have my doubts that they'll ever push C and C++ out of the way. I am definitely interested in embedded and IoT and have started to try learning them. It's taking longer than expected to learn the hardware aspect of things, though, but I will keep working at it.

Congrats to your nephew. I hope the company culture there is pleasant and he finds it enjoyable to work there. I can imagine the work they do being very motivating. I have always shied away from learning leadership skills to be honest, though as I've aged my attitude has changed some. I'm a major introvert and always imagined myself being a heads-down, highly technical worker. But I've seen that you get to do more interesting tasks and learn a lot more from others if you are more willing to take on at least some leadership responsibilities.



Fenn
Veteran
Veteran

User avatar

Joined: 1 Sep 2014
Gender: Male
Posts: 2,958
Location: Pennsylvania

24 May 2024, 7:47 am

I am mostly a back-end programmer/Linux admin/dba, jack-of-all trades master of none.

If you are interested in IoT and C/C++ get a raspberry pi.
I am also having trouble with the HW and development cycle. I think I might need to get an Arduino with wifi to make the development cycle more like I am used to. Not being able to easily log on Arduino makes it hard for me to tell what I am doing. I also think I need to get a hand held digital oscilloscope (a thing now).

I am better at computers than people and it has been a challenge in my career. Leadership requires people skills to lead and also to communicate with upper management.


_________________
ADHD-I(diagnosed) ASD-HF(diagnosed)
RDOS scores - Aspie score 131/200 - neurotypical score 69/200 - very likely Aspie


microprogrammer
Blue Jay
Blue Jay

Joined: 1 Jun 2023
Age: 39
Gender: Male
Posts: 90

24 May 2024, 1:32 pm

I find myself turning into a jack of all trades, master of none. And in hindsight I really enjoyed the web development / db stuff I was doing. I also spent a lot of years studying math, and that's partly what drew me towards C / C++, because it's used so often for scientific computing. I've also always been fascinated with operating systems though. (Well, always ~ 80% of my life so far.)

I bought a small Nucleo STM32 development board and have just been trying to get started developing with it. I'm still working on "hello, world" right now, which I think amounts to "blink the LED". There's definitely a lot of things to learn just getting started with the development cycle. I have a book to read, but I find myself going down rabbit holes Googling circuit terminology and concepts. Maybe I will also get a Pi, because it would be nice to use embedded Linux. That would be a very simplified setting to look more into the OS, compared to all the things that come packaged with Mint.



microprogrammer
Blue Jay
Blue Jay

Joined: 1 Jun 2023
Age: 39
Gender: Male
Posts: 90

24 May 2024, 1:35 pm

And I might have to take back what I said about Rust not pushing C / C++ out of the way. I'm even hearing some C++ figureheads talk about needing to pick up Rust. I've started trying to learn it. The curve feels a little steep to me.



Fenn
Veteran
Veteran

User avatar

Joined: 1 Sep 2014
Gender: Male
Posts: 2,958
Location: Pennsylvania

24 May 2024, 8:11 pm

I have a buddy who uses Rust for IoT in security applications/government(something so secret he cannot put the name of the company on LinkedIn). It seems to be much harder to buffer overflow.

I am trying to force myself to learn python. I am starting to know what to expect from jython vs cpython on Windows+Cygwin.and cpython on Windows-Cygwin (etc, etc)
I have a Windows laptop for work with no Admin. Last job I had a Mac with no Admin. I have recently made a qemu VM Ubuntu guest on a Windows host (no admin). My personal laptop is a Mac. I have a few Arduinos and one Raspberry pi. Also some older Lego Mindstorms Robotics kits (H8 Cpus).


_________________
ADHD-I(diagnosed) ASD-HF(diagnosed)
RDOS scores - Aspie score 131/200 - neurotypical score 69/200 - very likely Aspie


microprogrammer
Blue Jay
Blue Jay

Joined: 1 Jun 2023
Age: 39
Gender: Male
Posts: 90

24 May 2024, 10:22 pm

That's very interesting. Just recently I heard about embedded Rust and thought it sounded nice. It looks like they have a few good official online books that teach the basics of embedded and how to use Rust for it, that I'd like to check out. After hearing about the memos from the NSA and White House on using memory-safe languages, I'm not too surprised that Rust is already being used for government security applications. I bet that's interesting work.

At my last job we used Python for a web app backend. I thought the syntax was neat. I think we were all running Linux or Mac and deployed to Linux server, so could just grab cpython versions from a standard package repo. Though we had to have a separate Python from system Python for development. A few years ago in a different job I had a no-admin Windows laptop and I ran Ubuntu in Virtual Box for some things. I haven't tried qemu yet. At home I have a Samsung Galaxy book 2, that's a couple years old. I'd like to upgrade to something more powerful one of these days. The Lego Mindstorms kits always looked so cool, and maybe I should give Arduino a try too.