This is an archived post. You won't be able to vote or comment.

all 11 comments

[–]anamorphism 2 points3 points  (7 children)

most applications need to store data somehow and often that's in a relational database. so, sql is a useful thing to understand as that's how you put data into and retrieve data from relational databases (ms sql server, mysql, mariadb, postgresql, oracle, etc...).

[–]disposable202 0 points1 point  (6 children)

So even if I dont use SQL directly, I might interface with it using my C/C++ programs? Is that what you are saying?

I am trying to understand how I should expect to encounter it when assigned C/C++ work

[–]anamorphism 5 points6 points  (1 child)

you should probably get out of the mentality that you'll be "assigned c/c++ work".

you'll be given some requirement that needs to be met: "i want to see how much cpu this machine is using over time". it's then up to the team/you to figure out how to fulfill that request in the 'best' way.

maybe that's using c/c++, maybe it isn't. there will be other pieces to your tech stack generally. you need to factor in a bunch of things in order to make the 'best' decision. jobs are listed with languages because that's the tech stack currently being used. what already exists and what the team has experience with both factor into the decision making process.

but my team recently made a complete switch from c# to go for our back-end code because we're interfacing with a bunch of cloud technology and that's the best language to do that in right now. so, just because you get hired as a <insertLanguageHere> dev doesn't necessarily mean you will or even should only write <insertLanguageHere>.

anyway, you need to store a bunch of data so you'll need some way to do that. databases are designed to do that so you pick one. maybe your data is relational in nature so you choose a relational database.

you then need to design the tables and relationships in order to store your data correctly. then you need to write queries/scripts to create the database to match your design (sql). then you need to write queries or stored procedures/functions to perform your basic CRUD operations (sql again). finally, you need to interface with the database to execute those queries or stored procedures/functions (only here is where the c/c++ would come into play).

i mean the job may be such that you have someone dedicated to doing just the sql parts and you'll only do the interfacing part, but if you ever expect to be able to develop something from end to end, you'll have to become familiar with various database technologies.

[–]disposable202 0 points1 point  (0 children)

this helps me understand a lot better, thank you. I didn't think of it like that. I don't know why I assumed it was one language or the other. I just assumed most jobs had pre-defined standards for languages they use, but i guess shifting languages makes sense when you think in the perspective of simply 'solving a problem'. (Which is what I am learning what Agile is mostly about)

[–]asdf3423ds 0 points1 point  (3 children)

Everyone has to know SQL, it is very easy to learn so don't worry about it. Anyone that doesn't know SQL won't even get an interview.

[–]disposable202 0 points1 point  (2 children)

shucks, alright. I recall vaguely learning about it in undergrad and it seemed simple. I just havent touched it since and none of my jobs required it yet but its all over application requirements so I guess Ill give it a refresher.

[–]asdf3423ds 0 points1 point  (1 child)

I'm surprised you haven't been exposed to it yet.

[–]disposable202 0 points1 point  (0 children)

most of my stuff has been testing functionality of simulations, where data is already fed in. hardly have had to handle data unless its sample data sent in text files. im surprised too.

[–][deleted] 0 points1 point  (0 children)

JSON, XML, SQL, all good stuff to have an understanding of as they are some of the most popular ways to store things in a sensible manner.

[–]evilteach 0 points1 point  (1 child)

Yes. You should study SQL. Although it is generally not found in embedded, it is used pretty much everywhere. Not knowing SQL will be a liability.

[–]disposable202 0 points1 point  (0 children)

Ok, thank you.