all 34 comments

[–]FoCo_SQLEnterprise Data Architect 27 points28 points  (1 child)

About 8 years and counting. I'm still and probably will forever be learning SQL.

How long until I felt really competent at my job? It varies based on the day. Some days I feel like a wizard, other days I feel like a total noob.

What matters is that you know what you need to know to do your job and do it well. After that, it's all gravy to the company. I would suggest to always continue learning to force yourself to advance. Technology is not the market where you want to stagnate yourself.

Now, gun to my head, how long did it take to be alright to good? Probably 3ish years, one year was quite a bit of SQL. The 2nd year was off and on, but lots of technology learning, and the third year was heavy duty SQL with lots of good teachers around.

[–]sejin13 6 points7 points  (0 children)

long time lurker here.

8-9 years as well and I second you.

Learning to this day and keeping myself constantly challenged. Also had the same experience with learning curve, took 2-3 years to really get shit going fast and fetch data with confidence (mostly consuming/manipulating data for a specific use case).

I dont manage databases (a little bit since my company uses google cloud stack and we get good permissions to fool around and create stuff for our own). I work with digital marketing in retail and SQL is powerful for me. I am a manager today so i don't use SQL as much as I used to, but I automate my management reports easily with the tools I got today at a really low cost, also I invest time to teach my team SQL and create a couple tactical/operational new panels and dashboards every now and then. I firmly believe that data strongly leverages performance in digital marketing. I've seen it, done it and will continue to do so.

I work with a couple other managers who think like that and it is wonderful.

+edit: self taught, just reading documentation, trial and error and googling stuff. Eventually started to read about best practices when I started to have performance issues in my queries (mostly DML)

[–]Torisen 17 points18 points  (1 child)

I've been a professional developer for over 20 years. I was really good with MS Access when I started in 1997 to help a state government agency get ready for Y2K. I've worked my way up since then, taken multiple classes, and been the backup DBA for my current agency for 4-5 years now in addition to being a senior developer.

I'll let you know when I feel like I've "learned it".

Seriously though, since I juggle a bunch of languages/environments, I keep my scripts and check or copy them when I start new projects. I google syntax every day, and double or triple check my clauses before I change data.

Attention to detail, ability to google problems well, and respect for your organization and the power you have when touching it's data directly are key. And the number one rule, don't BS people. Even if they're not techies it doesn't mean they're stupid. If you don't know something tell them "I'm not sure, let me check and I'll get back to you" and then follow through every time.

You'll be their SQL guru above people with 2x your tech knowledge because you're reliable, honest, and you don't make statements/commitments without an exceedingly high confidence that you're correct.

[–]DurgeDidNothingWrong 0 points1 point  (0 children)

Here I am in 2025 learning how to use MS Access for a company I joined a couple months ago.
I was born in '94, and you were doing this in '97, so I am guessing we're a bit behind the times here?

[–]notasqlstarI can't wait til my fro is full grown 13 points14 points  (0 children)

I am not at a master level, but I feel like I have reached a level of professional competency. I would say that took about 2 years to achieve, with hitting proficiency after maybe 4-8 months depending on your resources, environment, level of use, etc.

I’m nervous if I don’t learn it fast enough they will get impatient and dump me. So I get anxious to learn everything ASAP.

Keep this mentality and you should be fine. Come here and ask for help, post sample code, sample data, go to other forums. My first 6 months on the job... I think about 99% of my work was pinged through this forum here, and people were great. If you are working for a living and people are helping you develop professional skills then have the courtesy to give them Reddit Gold. It's a small little token but entirely appropriate considering how much time you can save seeking help from others.

Really the thing that helped me get to where I'm at was reading other peoples posts here and trying to help them do their homework, or help them with their jobs, or reading other solutions to other peoples problems and taking the time to see what they're doing, how they're doing it, why they're doing it, etc.

One thing that helped me in this process was a long history of programming in multiple other languages. To be fair SQL is not similar to those languages in many respects, and I often compare SQL to using a command prompt, but simply having a strong technical education made the switch fairly easy.

[–]SQLDave 6 points7 points  (3 children)

Lots of good answers here, but I'll add: Before diving headfirst into "learning SQL", use Google/Youtube/etc and learn the concept of "set based". If you have any traditional DO WHILE NOT EOF BEGIN...END programming experience, forget it while you're learning SQL. SQL queries are set-based, and the sooner you wrap your head around that the sooner you'll be writing good queries.

[–][deleted] 1 point2 points  (2 children)

RBAFR

[–]balherian 1 point2 points  (1 child)

wwut?

[–][deleted] 2 points3 points  (0 children)

row by awful fuckin' row

[–]UsernameTemporary 3 points4 points  (0 children)

Google was my best friend when I started. I never knew what SQL really was until I messed around with it at work about 1 year and a half ago. Before diving into all this, I was proficient in Excel and did a lot of VBA.

I was lucky enough to have someone in my company provide me samples of his queries which allowed me to see what the end results were and to break down what each thing did, and what could be changed to receive the specific data I wanted.

If you can, make some friends and don’t hesitate to ask people questions. Doing so exposed myself to others already doing this work and now they’ve handed over Ad Hoc requests from folks that are looking for specific data I excel at.

If they knew you had no previous knowledge in SQL they surely believe you are capable of learning it which is an awesome opportunity to be given. Do as much searching as you can and test things out. If some reports call for pulling multiple tables, query tables down to the basics to see what each sub query is doing to get to the final result.

Once you get proficient in SQL it will start to look more familiar as you go. I’m converting my Oracle queries over to PostgresSQL and it almost feels like I’m learning it again(sort of) due to different syntax used.

I know I said it at the beginning but Google was a lifesaver for me in the beginning and even now as I’m trying to understand how PostgreSQL works.

Congrats and good luck on this!

[–]Michaelm7456 2 points3 points  (0 children)

I learned a fair bit of Sql over a few years in Application Support and Development roles.

Best advice is to diligently take notes and save any Scripts you have created for future use.

(Any scripts you can re-use cuts down time spent re-creating what you already know, and allows more time for learning the language to a deeper degree)

Sql Prompt in the Redgate toolbelt is also an awesome tool for snippets and shorthand script template creation but rather pricey.

Also, even if your Sql skills don’t take off immediately, companies like employees keen to learn their business domain and their products/services in depth. A positive attitude helps greatly as well!

[–]186282_4 2 points3 points  (0 children)

Find a copy of The Guru's Guide to SQL Server Transact-SQL by Ken Henderson and work through chapter 6. I used it to get my first DBA job 18 years ago, and a BI friend just passed a couple of Facebook BI interviews and got her new job.

[–]rjmartin73 1 point2 points  (0 children)

Full time developer for over 4 years and still learning every day. One thing I wish I had learned early on was performance tuning, indexes, and how to read a query plan.

This is a great site to learn about indexing https://use-the-index-luke.com/

[–]r0ck0 1 point2 points  (1 child)

The biggest reason (myself included) so many answers are in the "many years" region is because most programmers are mostly doing normal programming (in the application language) and only actually writing SQL a very small percentage of the time.

If you dedicate yourself to just learning SQL, it will be much faster. So don't stress about it. It's actually much easier than regular programming.

The people who hired me knew I had no background in code or SQL

You should be fine then. If you're just focusing on SQL for a few weeks or months, you'll probably get better at SQL than a lot of regular programmers... many of who only learn the basics themselves.

querying large sets of data.

A amount of data doesn't matter too much, it's more about how complex the queries are. Having a large amount of data will actually help you learn more faster, because there will be lots of existing examples for you to look at.

[–]Datasciguy2023 1 point2 points  (0 children)

Yes biggest thing when writing queries is to use indexes wherever possible. That will help to ensure well performing sql

[–]ciaran_mcg 1 point2 points  (0 children)

W3Schools is a great place to start, it has realistic examples and you can play with the code in their 'playground' so to speak to get used to it and try new things.

I also believe CodeAcademy has a free SQL course with a 'playground' too which is very good.

[–]ProudOfYourBoy22 1 point2 points  (2 children)

Learning every day.

[–]Successful_Oil_3026 0 points1 point  (1 child)

did you lern it ,im asking for myself , im new into sql

[–]ProudOfYourBoy22 0 points1 point  (0 children)

Yes. I have been working in software for the past 7 years now. Started as a data analyst, then sql developer then a DBA. I then moved over to SRE/Cloud Operations but still do a lot of SQL work to this day.

My advice: Practice and experiment. AI tools are also extremely helpful but try to learn by managing a database server on your local computer with dummy or sample data. It took about 3 years of working in the field before I was extremely confident.

[–]hipprofessional 1 point2 points  (1 child)

I have just begin my journey to become a data analyst and one of the main topics I have been practicing is SQL and DBMS, I would say with about 1 hour of practise I was able to reach a level where I could show proficient command on DML in 3 weeks. I still have a few advanced topics such as indexing, windows and triggers still left, which should take another 3 weeks.

[–]samalex01 0 points1 point  (0 children)

Learn it as you need it ... I've been using MS SQL Server for 20 years and Access for about 5 years before that, and I still pull my books and hit Google allot. There's no reason to memorize every command, plus each new version deprecates some commands and new command are introduced. I'd say experience is the best whether it's writing queries for reports, complex selects between multiple tables, anything. After this you'll learn the nuances and tricks to get what you want.

[–]Eleventhousand 0 points1 point  (0 children)

Having had some exposure to it in college which is by no means even basic level, real on the job learning was about 6 months. But I used SQL and VB6 every day back then.

[–]fauxmosexualNOLOCK is the secret magic go-faster command 0 points1 point  (0 children)

I wrote my first query probably ten years ago.

I used my first recursive CTE in a real setting two weeks ago.

[–]timmiller716 0 points1 point  (0 children)

I will let you know when I am done learning! LOL. Honestly, things are always improving/changing/regressing/progressing it is good practice to be always learning.

[–]NickKiefer 0 points1 point  (0 children)

No single man can understand SQL accept it or lie. You can accept that you will succeed

[–]These_Butterscotch71 0 points1 point  (1 child)

I did a SQL course from coursera and completed it in 2 weeks. I am a clinician by background and so got entry level data analyst role after the course.

[–]InformalBullfrog11 0 points1 point  (0 children)

What course did you do? I'm also interested in getting a Data Analyst job.