Learning sql, mysql right now. Is there any practical use of this skill outside of corporate drudgery? Seems like it's pretty useless unless you were trying to start your own online business from scratch, but you ought to be able to pay some third-worlder to build a database for you.
>but you ought to be able to pay some third-worlder to build a database for you.
That's exactly why it's useful. Deprive them of making money from useless skills.
who gives a shit about money and business.
if you can use it to make something that improves your life, it is not a meme skill.
if you want to get a job knowing only query languages you might as well apply for a janitor position
If you work backend you 100% need to know how to use databases and SQL querying period. There's no way around it. But, honestly, you can learn all you need to know in a week or just intuit it on the job, so don't bother putting in the effort unless you're looking to be a DBA.
SQL developer / data engineer here. Yes, pretty much every application is a front end to a database. The only thing that matters is the data. If your database is designed like shit, your application will perform like shit. You might as well have a poo code your app if you have a shit db.
I've worked for companies where both the application and the db were written by jeers and it's truly nightmarish
Agree You can learn basic sql in a week. Just like you can learn basic programming skills in a week. Anything more advanced comes with experience
I make 180k in a poor area. I do sql dev interviews and I filter pretty much everyone with simple questions. There's actually a shortage of talent right now idk why probably because everyone is hiring.
I find this interesting, please make a question that would filter me.
Dude it's just really simple stuff like what's the difference between a union and union all. It's literally on every sql questions website but so many people get it wrong or don't know.
I would've been filtered by this, it shows how shit most programmers are at SQL as I've worked at multiple companies and I've still to meet a programmer who really understands it. I think the root cause is that for most cases even very bad SQL performs well enough to never cause problems and that our brains are by default in imperative programming mode and try to write SQL like that when it's a declarative language and most don't even know the difference.
Yeah you're probably right. You have to write some atrocious sql or rely on a gui editor to really suffer. You'll only really run into underlying issues once you get into the tens of millions of rows. A company I worked for literally had rules on how you shouldn't create any indexes. It's like they wanted their dB to perform as bad as possible but it still managed to perform.
Indexes can be even bigger than row data itself when badly designed.
Yes but storage is cheap now and if you know what queries your app is running (important ones that need to be optimized) or what queries you're reporting on, it can be pretty vital to have indexes. A lot of database design paradigms have been thrown by the wayside with some newer engines though. Stuff like Snowflake and Athena. Those are such powerful engines that they often don't need a lot of hand tuning. But those aren't something you would run your transactional (the thing the application actually connects to) on. Those are for data warehouses.
This.
If you're going to let Rajesh touch your codebase, at least keep him in the frontend and far away from the database where he can't cause too much damage.
Database is the most important piece to get right of nearly any application.
This
Backend Dev here, SQL is super important for everything, from a greenfield to replicating a bug.
In which cases would you have to use a cross join?
Learn the basics. It takes 1 day.
>but you ought to be able to pay some third-worlder to build a database for you.
thanks to that thinking america is demising economically while choyna jumped from 6th world country to a world's most potent economy in mere 20 years
Nearly every piece of real software in a business or something uses a DB. Id say its essentially if you want to be a software engineer.
But its really not that hard. If you can make a table, do inserts and updates, do joins. Thats like pretty much it. Its literally just a more structured way to store data instead of using raw files on a disk.
If your DB queries start to get complicated its usually a code smell that your design is bad
Or database smell, I've seen some shit when there's something beyond basic like a tree structure and they didn't understand that there will be pain unless it's done right because they only know the basics and honestly in most cases it's enough.
Its useful if you ever want to manage any sort of data. For personal use or work.
Someone told me there's an opening for a junior SQL dev and they'll be interviewing within a week.
I "know" SQL as in I remember how to make selects but not necessarily done any projects or anything serious besides passing a college class. How do I cram to prepare for a such job?
It's at a mid-sized company that probably relies on DB(s) to keep everything in it and it's described as "optimizing DB, providing support for the DB users and making queries as per request".
That means
>know when to use indexes
>diagnose and fix slow queries
>have disaster recovery plans
>design schemas for new features
No, it's super important to at least know the basics. If you want to be any sort of 'full-stack' developer, you'll need it.
PostgreSQL is nicer than MySQL, though.
You will never be this good at SQL
https://observablehq.com/@pallada-92/sql-3d-engine
The only skill there is today with programming seems to be with making it destroy databases, not build them.
My dad's entire job was just doing stuff in oracle and they paid him 180k a year
my dads entire job is oracle psql, hes a boomer, he makes 120k a year after 20 years
you might be the blackest Black on earth.
knowing how to database is unironically yhe only usefull thing that they give you in your cs degree.
databases are fricking used fricking everywhere, best way for data persistence in apps and to organize large amounts of data.
unironically ngmi
It's a meme skill since a regular programmer that has a bit of DB knowledge can replace you with an ORM
ngmi
rope yourself NEET
just pick a good ORM legit does what ORM stands for and ur good
depends on the ORM you use
>depends on the ORM you use
depends on if you need recursive CTEs to express your query; never heard of an ORM that wrapped those without having you drop to SQL anyway, yet they're great for some types of query
This is a moronic take.
An ORM takes an extremely powerful concept (the relational model) and a high-level declarative language (SQL) to make them fit into inferior technology (object-oriented programming).
This is what developers who don't know databases do, because it converts them into something they understand (programming with their language of choice) but is really not a good solution.
The correct approach is to focus on the database: have a good design, nice views, etc. If you get the database part right, the application becomes trivial to write.
>ORM
maybe if you're only doing basic querying
Good luck fixing the app when a single request takes 90 seconds to complete due to N+1 queries, sequential scans and pagination is done on backend instead of DB.
This actually happened to me when trying to interface with a poorly coded third party webservice.
The amusing part was that the IT team of our client was aware their app was shitty but they never had time or resources to fix it.
This happened to me as well. Also had to debug some jeet code once and found an HL7 interface HAMMERING the mysql instance because it was opening a connecting and querying the messages table in an infinite loop with no pause. Literally thousands of queries hitting the dbs per second because the application was also multi tenant. And the messages table had no fricking indexing(not that it would have mattered anyway). Again jeet code and jeet db is the worst fricking combination.
Worst take in the entire thread
Oh no it's moronic
Where do you think all the posts in this thread are stored?
An SQL database
Then why learn something you think is useless?
Actually learn something you find enjoyable and useful, and you'll get much better results from it.
Nobody will hire you just because you forced through some tutorials or books fren.
>Nobody will hire you just because you forced through some tutorials or books fren.
Don't listen to this mental midget. That is the ONLY reason anyone will hire you. Go try to get a job without any education or certs. Credentialism is how companies make hiring decisions so that they can't get sued for being subjective and wayciss in their hiring practices.
I'll keep that in mind. Credentials and certifications.
If by meme skill you mean "low-effort certs that will set you up for a $100k/yr office job", then sure. One of my buddies in high school's dad went from a data entry clerk to a database admin with about 2 years of self-study and certs and went from making like $10/hr to $80k, and this was like 15 years ago.
>imports CSV from customer
>cross references data inputted manually
>easily allows to select data and export in different formats
>just have to browse stackoverflow, play around with queries until they do what you want, write a thin web page around it, add some indexes to solve performance issues and slack off the rest of the time.
Databases are based and the most underrated piece of software
Its one of those things I think aren't worth mastering but is so simple that you would have to be moronic to need a third worlder to do it for you. Use entity framework or something like it if you don't want to do SQL.
Do you want to make programs that store data? If so then you need a database.
> you ought to be able to pay some third-worlder to build a database for you
> Need to add a field to my data
> Run one query
> Done
vs
> Need to add a field to my data
> Explain to rasheed
> Wait 12 hours
> It's wrong
> It's wrong
Not just wrong, but they've added 14 tables with 1000 fields each named Field_1, Field_2.... and truncated the table you actually needed.
After around 5 years od studying IT, databases are what I enjoy the most, what should I learn to get a job related to them?
You guys ever work with a system analyst?
They know nothing, maybe a select * from table. There you go, paid more than I am in a couple years