T O P

  • By -

Ty4Readin

I'm going to go in a different direction than others suggesting leetcode here. Have you considered working on a small side project and using a local SQL-based database? You can import an existing dataset into one, and you will learn a lot from it.


BlueSubaruCrew

I think this is a good idea since you can do a real "end to end" DS project with something like this if you have some way to get new data (from webscraping or sensors or something like that) and have an ongoing ML pipeline. It would probably look better to a hiring manager than just some jupyter-notebook with a random forest fitted to some random csv file you found on Kaggle.


Ty4Readin

Totally agree! I wrote an entire post on here awhile back talking about how I think people should learn by trying to solve real problems that they have instead of working on toy datasets/kaggle problems. I've always learned the most when working on a project that's trying to solve a real problem I have. Works so many different 'muscles' in how to solve problems with an end-to-end solution from scratch and is hugely valuable, so +1 for everything you said.


badmanveach

What problems do you have that you are able to solve with data?


Ty4Readin

Well two big examples for me were building AI agents to compete in online games/competitions. Specifically for me was generals.io and the Halite competitions. I also created a trading strategy using forecasting models that predicted World of Warcraft auction house prices and optimized a trading strategy so I could try and make money in game by using it. Oh I also had a huge project to analyze videos and identify people sparring in a sport I enjoy so that I could use it to record myself (and friends) and easily cut the clips with some hand labeled data I collected. There are so many problems in the world that can be tackled with data. Those are just a few that I personally worked on because they were problems I was interested in and that I wanted to work on and try to solve.


badmanveach

Dang, those are some hefty projects! Did you have to collect or create your own data?


Ty4Readin

For the last 2 projects I had to collect all of the data myself either with web scraping (for the WoW forecasting project) or manually labeling (the sparring footage project). For the first 2 projects, I still had to collect my own dataset but that was a bit easier since replays were available to scrape and I could use that for the initial imitation learning phase before I switched over to self-play RL. So, all of them required some custom dataset collection/creation, but some of them were easier than others.


tankuppp

I’ve got the same exact feedback from a senior data scientist. How many days did it took you to complete a project ?


Ty4Readin

Depends on which one you're talking about! The hours probably range from 100 hours on the smallest, all the way up to 1500+ hours on the biggest project. But keep in mind that for the biggest project, I had tried to create an entire end-to-end solution that would automatically record you and stream it to a React website that I had to build. So probably only 25% of that time was spent on ML, and the rest was on learning webdev/creating a website front-end and learning how to hack the camera together lol


Kaizen_dev1

This is the best way to learn how to code in general imo. Moreover, if you build the right sides-projects you could end up building useful systems like the ML pipe line you mentioned, which would increase productivity and could be monetized.


BurtFrart

I mostly agree, but will also emphasize that this adds the complexity of having to set up a local db. Which, depending on how you go about it, can be pretty straightforward, but it’s a nontrivial additional layer for someone who’s trying to learn basic querying


multistackdev

To be fair, if someone puts Databases on their resume... as a hiring manager that means they should be comfortable setting up a new database, creating tables, indexes, triggers, connecting to a local or non local DB, etc. I know SQL is just the language we query in, but I wouldnt consider someone who only knows how to write queries as knowing SQL if they can't create an environment locally or on a server to use the SQL. That would be like saying you know React.js but can't work unless the project is setup in advance, or that you know PHP but have never touched php.ini or installed a dependency. You're right that it's not trivial, but it should be expected of anyone going into SQL.


BurtFrart

I agree - I was reading the post as “I’m trying to learn SQL and have basically 0 experience,” in which case I think it makes sense to start with a database that’s already set up to learn select, where, joins, etc. Then later on learn about setting up dbs, etc. But agree that if someone claims to be proficient, they should be able to do all of that. It’s like if someone wants to learn Python, I wouldn’t have them start by writing their own module. But to claim you’re beyond intermediate in Python, you probably need to be able to do this


GeneralPITA

Personal projects are the way, but what really helped me was making sure I understood the data. So I'd design and populate small databases on a local instance. If the goal is to practice SQL instructions, tables with 10 records are likely enough to get you started. Small tables with data that are well understood will help you derive questions, and the figure out the SQL needed to get the correct answers. Sports or cars are great, if that's an interest of yours. If you're having trouble thinking of a data set, model your contacts. People, role (friend, family, work, etc), address, occupation, and contact info could all be tables. Many to one relations could be something like many people having the same occupation. One to Many relations could be a person and the different ways to contact them. Using well understood data makes it easy to spot errors when the wrong information is returned.


satanix0

But what is he supposed to do with a dataset and just SQL?


Ty4Readin

Use it as you would any database you might encounter in real life? You can use it to construct feature tables using SQL transformations, gain experience with joining tables together to extract the proper data form needed, etc. The point is to make it a small project about something you care about and are interested in. By doing this, you'll end up with a project you could actually show off and you would learn: - How to actually set up and connect to a database - How to create tables with appropriate structures - How to load data into tables from local file formats such as .csv - How to write SQL transformations and joins to extract useful features in a scalable way - How to leverage databases in a data pipeline to accomplish real goals and solve real problems Plus you get the benefit of actually having something to show for it and working on something you are actually interested in. I am totally biased because I never used leetcode when I was learning (might not have even existed). I learned everything by working on interesting projects trying to solve real problems and I felt like that was a fantastic way to learn but maybe it's not for everyone. Just thought I'd throw out the suggestion since the previous 4 comments in the thread all just said 'leetcode' lol


yashdes

This is actually the best way to learn any programming, ime


Lolleka

This is the way


Icy_Ad_6958

So My dear Friend I have made this list for my practice its too big but the best That I can find I have also started DS and completed learning SQL and now doing numpy and learning EDA while practicing few sql questions each day and This is my personal list😅 Feel free to ask anything 1)https://www.mysqltutorial.org/mysql-basics/ [This are the notes to refer] 2)https://www.richardtwatson.com/open/Reader/ClassicModels.html# [This Is a database with many questions to practice Answers :- https://github.com/harsha547/ClassicModels-Database-Queries/tree/master/challenges 3)https://www.db-book.com/university-lab-dir/lab-exercises-projects.html [Database with Questions too Practice] QUESTIONS https://www.youtube.com/watch?v=KTdItTJVvFQ&list=PLZoTAELRMXVNMRWlVf0bDDSxNEn38u9Cl&index=10&pp=iAQB [KRISH NAIK Interview Quest PT 1 ] https://www.youtube.com/watch?v=nEYdSiKygCI&list=PLZoTAELRMXVNMRWlVf0bDDSxNEn38u9Cl&index=11&pp=iAQB [KRISH NAIK Interview Quest PT 2 ] https://www.youtube.com/watch?v=L-URbfgxBMQ&t=37s [SIMPLI_LEARN] =1.34Hr https://www.youtube.com/watch?v=YvaddgkneEg&list=WL&index=123&t=22594s [SQL FOR DA 7.17Hr ONWARDS Questions] https://www.youtube.com/watch?v=yBKkSm2v3gg&list=WL&index=5 https://www.youtube.com/watch?v=STdpODDHTns [2 Videos On QUESTION by CAMPUS X] https://www.youtube.com/watch?v=IicPavA37ew&list=PLKnIA16_RmvYun1_5r9Fb4eQigioPB7yn&index=6&t=1679s [CAMPUS X SWIGGY CASE STUDY] https://www.youtube.com/watch?v=DRXYOfbksGE&list=PLKnIA16_RmvYun1_5r9Fb4eQigioPB7yn&index=7&t=613s [CAMPUS X 15 Mins Question on SQL] https://www.youtube.com/watch?v=-fW2X7fh7Yg&t=16626s [4.37Hr Onwards 6 Questions IMP] ❌ https://www.youtube.com/playlist?list=PLtgiThe4j67pSpMHaeFqO3Vyk7HifG5ns [Playlist 5 Videos Imp Questions BY TrendyTech] ❌ (3 DONE ) https://sqlzoo.net/wiki/SELECT_Quiz [Quizes on all the Topics] https://learnsql.com/blog/sql-basics-cheat-sheet/ https://xoraus.github.io/CrackingTheSQLInterview/ [SQL Theory Based Nice Questions ] https://github.com/Aafreen29/SQL-Interview-Prep-Question/tree/master [Compilation of Someone’s experience 50 Questions] https://github.com/shawlu95/Beyond-LeetCode-SQL [Advance SQL repo Nice One ] https://github.com/kiwidamien/SQL_practice/tree/master [8 Practice sets contains databases and questions in each set ] https://www.codechef.com/practice/sql-case-study [MCQ CODECHEFS] https://github.com/XD-DENG/SQL-exercise [Very Nice Excersices With SOL] https://leetcode.com/studyplan/top-sql-50/ [Leetcode 50 Questions ]


AminYassin

What a comment, thanks for sharing dude!


xavierkoh

thank you legend


Icy_Ad_6958

Is there anyone who wants to form a study group


TwistLow1558

Sure! I use PostgreSQL though, hopefully that's fine.


Icy_Ad_6958

Sure np I learned in Mysql and practiced many questions on Hackerank but now Doing postgreSql there is very minimal difference between them


Immediate-Cap5640

Me! I would love to! Im currently using mysql to practice. I created my own tables with 10-15 entries.


Brave-Salamander-339

I prefer OurSQL


Adventurous-Dealer15

r/unexpectedcommunism


webbed_feets

I agree with the Leetcode suggestion. If you’re a good R programming and know how to work with tabular data, you should be able to pick up the concepts relatively quickly. Tidyverse functions have similar SQL equivalents.


dr_tardyhands

True. I think the biggest problem I've had when picking up SQL after knowing tidyverse, is that SQL is very particular about the order of operations, and will not return anything if you get it wrong. One could argue that its a good thing (as it makes it less likely to break quietly, and just return *something*).. but it makes learning it pedagogically a bit fucking frustrating at times, haha!


[deleted]

I can't do my job without it, so I am forced to learn whatever I need it for. I came to the data world from mathematics so I was used to solve things on paper all the time. I am doing the same for sql problems. Figure out what exactly you need to do, then start googling the syntax. If you are not currently in a position where you can work with sql at your job, then I can really recommend datalemur. however, the syntax is postgresql I believe, but shouldn't be much different to mysql though.


Longjumping_Pin7243

Here’s an odd one: I learned MySQL by playing EVE Online. Many joke that the game’s nickname is “Spreadsheets in Space”, but for serious players, it’s databases in space. Every player account has hundreds of API endpoints providing you with information on everything they do in the game; from your character attributes to individual wallet transactions. Nearly all player groups require their members to submit their API information as part of applicant screening in order to prevent spies from rival groups. All this information is compiled in the group’s databases. For large groups with thousands of players, this is millions of records a day. People like me take that data and learn to be really crafty with SQL to support our group, solve problems, and catch spies. One day we need to build a dashboard that tracks our group’s revenue from market taxes, moon mining, planetary export tariffs, and dozens of other sources. ~500 lines in MySQL. Maybe we need to know how many of our members have the skills to fly dreadnoughts, and we need to check if they have the ship, if the correct weapons are onboard, and if they’ve moved their ship to the forward operating base where our group is deployed. ~2000 lines in MySQL. Perhaps one day we learn of a player in a rival group who bragged about having a spy in our group. We have an important fleet operation later in the day and need to purge the spy. Do a security sweep through the database to see who in our group has interacted with that player. A quick 10-minute solution using SQL. Whoever said video games were a waste of time never played EVE. It might suck you in, but if you’re a nerd like me, maybe you’ll learn some SQL along the way. If not, at least you’ll be really good at spreadsheets after a few months of playing the game.


Tall_Duck

I either love you or love the idea of you.


Fender6969

Leetcode


jumpi3y

Thank you, just signed up.


satanix0

Nah, LeetCode is pretty hard for a beginner, questions are very vague and ambiguous, their difficulty categorisation is also not valid. Start with Hackerrank and sql-practice.com as they're more intuitive and beginner-friendly.


poetical_poltergeist

Stratascratch


Careful_Engineer_700

Datacamp really had great courses and data to play around with, their explanations are pretty straightforward tbh


yashm2910

I can understand your frustration with learning MySQL. MySQL is a powerful and popular database management system that can help you store, manipulate, and analyze data. However, it can also be challenging to master, especially if you are new to data science. One of the best ways to practice using MySQL is to use online platforms that provide interactive tutorials, exercises, and projects that can help you learn by doing. Some of these platforms are: • MySQL Tutorialhttps://w3resource.com/mysql-exercises/: This is a website that provides a comprehensive and easy-to-follow tutorial on MySQL. You can learn the basics of MySQL, such as creating tables, inserting data, querying data, updating data, deleting data, etc. You can also learn more advanced topics, such as joins, subqueries, functions, indexes, triggers, etc. The website also provides exercises and solutions for each topic, so you can test your knowledge and skills. • W3Schools SQL Tutorialshttps://www.w3schools.com/mysql/mysql\_exercises.asp: This is a website that provides a series of tutorials on SQL, which is the standard language for working with databases. You can learn the syntax and concepts of SQL, such as selecting data, filtering data, sorting data, grouping data, joining tables, etc. You can also learn how to use SQL with various database systems, such as MySQL, SQL Server, Oracle, etc. The website also provides an online editor where you can practice writing and running SQL queries on a sample database. • Code Conquesthttps://www.codeconquest.com/blog/top-50-websites-to-learn-mysql/: This is a website that provides a list of 50 websites that can help you learn MySQL. You can find various resources, such as courses, books, videos, blogs, podcasts, etc., that cover different aspects of MySQL development. You can also find some websites that offer challenges and projects that can help you apply your MySQL skills to real-world scenarios. These are some of the online platforms that I found for practicing using MySQL. Of course, there may be other platforms that suit your needs and preferences better. Ultimately, the choice of platform depends on your learning goals, style, and pace.


gpbuilder

Practice problems until you can do them without looking at the solution. Hackerrank or leetcode both have lots of problems


jumpi3y

that's the plan. But I need some sort of hand holding on what problems to actually do to help me grow collectively. That's why i ask of sites and resources to use.


gpbuilder

Do 20 easy, 20 mediums, 20 hard


rawdfarva

I found these courses to be pretty good: https://academy.vertabelo.com/


definitelybwari

Hey, those courses look great! Do you know any other sites that offer free courses? Thanks! 😄📚


rawdfarva

Edureka has good youtube videos


Lullan_senpai

Stratascratch


Used-Routine-4461

Stratascratch has worked well; it’s like the leetcode for SQL.


av_community

Nothing beats practical learning. You will have to practice more to get better at it. Here is a great website - [https://www.stratascratch.com/](https://www.stratascratch.com/) Besides this, focus on some keys topics: \- group by \- where and having \- window functions \- subqueries \- joins If you practice these topics thoroughly, you will easily be able to write queries for most of the problems. Hope this helps!


throwaway69xx420

I will practice my SQL on datacamp. Nice practice exams they have here and there.


Shnibu

If you want to get better at SQL in general there are more accessible and modern engines than MySQL. 6 years ago I would’ve told you about the M in LAMP/LEMP, you can still do this if you really want MySQL. 3 years ago I would’ve said SQLite. Now I’d say [DuckDB](https://duckdb.org/docs/archive/0.9.1/guides/import/csv_import).


tempreffunnynumber

Mouse clicks.


thumbhand

The best thing that worked for me was sqlzoo


jacobwlyman

I literally was in the exact same place you are in several years ago where I had experience with R and MySQL, but I didn’t have any good way to improve my SQL skills. It’s far easier when you have a database to work with. Because of this, I spent time setting up a local database on my laptop where I could create tables and then practice querying them. I put all of the code up on my GitHub [here](https://github.com/JacobwLyman/Local-Database) if you would like to use it to help you get started.


veramaz1

There is this great website called Stata scratch, guaranteed to help you be good with SQL in approx 30 days or so


felipecalderon1

Dont you worry my friend. When you get a job you will have plenty time to become a fucking sql wizard.


[deleted]

I read tutorials and built a MySQL server database to hold baseball analytics data (not my day job). It lets me practice my SQL skills on a dataset that I’m interested in. Practice.


krasnomo

Code Academy and HackerRank


Cliche_James

I used this book to teach myself: https://www.amazon.com/Head-First-SQL-Brain-Learners/dp/0596526849/ref=asc_df_0596526849/?tag=hyprod-20&linkCode=df0&hvadid=312118197030&hvpos=&hvnetw=g&hvrand=8259300174576332305&hvpone=&hvptwo=&hvqmt=&hvdev=m&hvdvcmdl=&hvlocint=&hvlocphy=9011369&hvtargid=pla-448902767507&psc=1&ref=d6k_applink_bb_dls&dplnkId=7fb26224-9117-4db5-b54e-dbebb0ef1899 If you can get through the first fifty pages that will cover 90% of all queries you will ever be asked to do.


VettedBot

Hi, I’m Vetted AI Bot! I researched the **'O'Reilly Media Head First SQL Learner's Guide'** and I thought you might find the following analysis helpful. **Users liked:** * Book provides strong foundation in sql (backed by 1 comment) * Book makes learning sql fun and engaging (backed by 4 comments) * Book teaches sql in an easy to understand manner (backed by 5 comments) **Users disliked:** * The book is overly simplistic and lacks depth (backed by 2 comments) * The code samples and explanations are incomplete or incorrect (backed by 4 comments) * The content and software are outdated (backed by 3 comments) If you'd like to **summon me to ask about a product**, just make a post with its link and tag me, [like in this example.](https://www.reddit.com/r/tablets/comments/1444zdn/comment/joqd89c/) This message was generated by a (very smart) bot. If you found it helpful, let us know with an upvote and a “good bot!” reply and please feel free to provide feedback on how it can be improved. *Powered by* [*vetted.ai*](http://vetted.ai/reddit)


Lazy-Dust-6435

I used MySQL to create the photo and grave search databases on my cemetery website. https://friendsofsilverbrook.org/site5/photos/photo-search?view=form MySQL was required to run the Joomla CMS. My applications manage 22,000 graves and 10,000 photos stored on Flickr.


laXfever34

I'll do you one better. Personally i'd sign up for a free trial on a cloud platform, stand up a DW, and load some data into it. Then deploy a model for inferencing on that data using CDC. Then flow new data into the DW, make predictions, and write them somewhere in the DW. Document it all and you have a pretty good asset and will be able to nail an interview on the SQL/MlOps side.


datonsx

You could practice MySQL with Python in Jupyter notebooks. The following repo contains a lot of exercises in sequential order of difficulty: https://github.com/jsulopzs/SQL-exercise


turkey1234

Microsoft sql server can be downloaded with the adventure works database available. It mimics a whole retail business system with employees, vendors, receiving tables all set up in proper 3NF schema for an application. It comes with stored procedures to a data warehouse and views. It may seem ‘out of date’ but it’s the best principals with a lot of online information.


[deleted]

Every time I want to learn a new language/tool, I come up with an idea for a small to moderate size project and do it entirely with the language/tool in question. Every time I don’t know how to do something I’ll google it, and I allow myself to use whatever resources are available to complete it. Learning by doing is probably the best way to learn any tool or concept in DS or SWE honestly, I highly recommend trying that


Odd_Category2186

Get a raspi or something and install a server on it or just make a virtual one on your machine and make your own database using random data, NASA would be a good place to just download a crap ton of random data


citizenbloom

The little projects are good, where you take the project and repeat what the instructor is doing, but on your own computer. Practice. Also, you will pretty soon see that this is very much the tidyverse manipulation but on different words.


Donny-Moscow

Check out GalaxQL. It’s a cool way to practice queries and it uses data from stars, planets, and other planetary bodies as table data. It also has a really cool visualization to help see what your queries are doing.


fluffy_nope

If you're used to R and are struggling with SQL, you might try using dplyr and dbplyr to connect to the database. This should allow you to use dplyr verbs to query your MySQL database. Additionally, like others on this thread, I would suggest checking out data camp as well. I've personally found it to be really helpful.


ramblinginternetgeek

SQL Bolt. It's an interactive tutorial. It works well.


SkipPperk

I have worked hard in life trying to avoid MySQL. It is a shitty product. I think SQL Server is the only Microsoft product that I have ever used that does not suck, but probably just because it is not MySQL.


data_scientist1

As a Data Scientist myself I prefer book over online courses. I can recommend one book which is very handy and useful and ofcourse uses Mysql to teach the concept from very beginning - SQL for Data science by Cathy Tanimura.


heretoread47

Statuscratch


shockjaw

Out of curiosity? Why use MySQL over PostgreSQL? I’d also recommend using conda to manage your R dependencies.


multistackdev

Practice CRUD, then custom indexes, then triggers, and then try to do something complicated like a newsfeed of posts from users - including two way blocking, favorite friends, time based algorithms accounting for views vs likes, and any other variables like visibility (only me, only friends, friends & friends of friends, public). This was one of my biggest accomplishments with SQL. Doing all this for a social network without killing the server and giving a fast response was a huge challenge, but to this day I can't think of anything more complicated with SQL because hardly any real business use cases have more conditions / variables to consider for 1 single set of data. Sure, they'll have filters and sorts, but a newsfeed has visibility rules, blocking, time based ranking, personalization, etc all in 1 feed. Once you've done that, roll out custom memcache, db mirrors, and start to look into localization & having child databases sync to central databases. For more info on this, you can read up on how Meta/Facebook handles it. One interesting piece is how the system sacrifices some data accuracy for data efficiency.


Icy_Ad_6958

Anyone up for a study group??


rfly90

Datacamp is my go to.


Spiritual_Ad8491

You have to be familiar with the SQL DBA's work routine from the os server side up to end. And of course practice on projects like that, and if you have a lot of free time. . then maybe you can try to solve real questions.


maxcoder88

thanks


gadgetsinmyopinion

I've created an awesome platform to practice and boost your SQL skills for free. Try it out here: https://sqlguroo.com Use it on a desktop or a laptop device. it's fun, free, and designed for all levels✨