In the spirit of continuous learning and collaboration, your friendly neighborhood Community Support Engineers over here at Retool have been thinking it could be really cool to pool together our favorite learning resources in one place!
And so - we pose this question to the community and eagerly await your thoughts!
How have you been continuing your learning journey to build skills and understanding that helps you build in Retool?
Answer this however you'd like -- anything that you think others could also learn from. Some prompt ideas to jump-start our learning resources thread:
Favorite online course you ever took that still helps you today?
Website or reference docs you always have open when building in Retool?
What kinds of technical concepts or skills have you focused on developing that have been the most high-leverage when translating to building in Retool?
JavaScript / SQL / sub-concepts of those?
DevOps concepts for self-hosting Retool?
Have you found resources for learning concepts and skills around the ever-evolving world of AI that have helped leverage AI features in Retool?
Product design or project management resources that help you organize your Retool building work?
Do you follow any cool tech blogs or other forums to learn adjacent things?
Think outside the box - any other learning tips or resources that other community members here could benefit from hearing about?
Please share your own list of websites, online courses, meetups, or other learning resources in the comments here!
Definitely not biased or anything, but I bookmarked the Environment Variables page in our docs a long time ago and have it open whenever I'm working with a self-hosted instance.
Google has a really cool playground for helping to understand and build OAuth2 integrations.
I still find CIDR notation to be not very intuitive, so this calculator comes in handy whenever I'm setting up cloud infrastructure.
JavaScript unlocks the full potential of Retool, enabling us to build highly dynamic and customized applications. Itโs crucial for manipulating data on the fly, creating responsive, interactive components, and finding inventive workarounds that open the door to even more use cases.
Although AI can generate JavaScript, I find it essential to be comfortable with the language to effectively tailor the code to our specific use case and troubleshoot any issues that arise.
Eloquent JavaScript is a great book to master the language, and there is a free online version: https://eloquentjavascript.net/
I recommend the entire book, but to get the most out of it for building in Retool, focus on chapters 1-6 and 11.
Similarly, Retool applications interact with various types of resources, and most often, you'll be working with a relational database. To sharpen your SQL skills, I highly recommend going through SQL ZOO. it's a fun and engaging challenge!
Here's a fun fact I suppose: I use ChatGPT the Mac Desktop App more than Retool's baked in AI (the little purple bot) because in Retool, the AI doesn't have context to the code it is manipulating.
For example: it generated this function from a prompt just fine, but if I ask it to modify it, you can see that it was not given the current code as context.
It became faster for me to use keyboard shortcuts to:
select all, switch to chatgpt, paste, ask, copy reply, switch back to retool, select all, paste
Much like above, I don't really have a folder of resources but I think something that has helped me approach my designs with a clear philosophy is the Mozilla Developer Network site for Javascript references.
It usually talks about the purpose of certain prototypical functions and gives clear examples of how they should be implemented.
Similarly, I am often referencing the built-in feature's source documentation (some already listed above like lodash) and learning some context specific nuance for using different query languages.
Probably the biggest resource I have to be successful, though, is here in the forums. I often don't have the same issues that others run into because of the scope of my development requirements, but seeing their issue often allows me to use my preferred resources to figure out how I would approach those problems. Other members are also providing their own solutions and in some cases revealing new ways to approach these problems. In providing a solution to a member in need, we are helping clear out issues that might help others (and ourselves) in the future.
This is bound to be THE goto thread to find learning sources coding and technical topics/concepts for all skill levels! Can't wait to see what everybody shares!
Note: I'll be updating this with more resources as I have time. I'll list dates I make updates at the bottom.
Ok so maybe I'm biased here and this might seem odd considering none of the C languages are available to us.... directly. they aren't directly available to us. fun fact, javascript engines and interpreters are almost always built with c or c++ and python actually is built on c. that's why I say it isn't directly available, but we are influenced by it. this book contains EVERYTHING you could possibly do in c++, but most notably it includes the breakdown, use and re-creation of the programming fundamentals that are used in EVERY programming language.
Ignore the first 9 pages on chapter 1 and every thing else can be found in some way in every programming language (most can be found in scripting and query languages as well, markup languages are the only ones that get left out but only because they don't need it to perform their 1 purpose of embedding text)
don't try reading it page by page front to back. I don't know a single person that has.... maybe a couple of my teachers, but those were people who found 1 improvement to 1 equation incressing its efficency by such a considerable amount Nintendo made the N64 Expansion Pack (it was 1 simplification that led to something like 15-20% improvement in speeds... it was 1 dude who found it and he wasn't even a math teach ) . The Bell Curve was invented because of people like them, probably.
this is almost always my goto, especially if I know the function I'm looking for or even just a similar function name from another language like .length() or .substr() from C++ std::string
This site tends to leave out deep techy details, which can be a nice place to start when learning a new concept/fundamental.
On the plus side, it always has lots of examples with 'try it yourself' areas and there's usually an exercise of some sort to practice what you've learned in a test-type style
It's so popular it's provided in 42 languages. I actually didn't even know there were atleast 42 languages until today. I thought like 20 max (guy math, divide by 3?), not as bad as not know pickle = cuccumer but i feel like its up there.
Featured and recognized as one of the best projects on github (this, the algorithim one below this and 30secondsofcode were also recognized here)
Includes multipule links to articles, videos and occassionally books for each concept
its kinda self explanitory, but it contains probably every algo you'll need unless you're doing some really weird stuff like applying math operations from another arithmitic system (attempting to account for under/overflow in a finite number system using Modular Arithmetic.
for the curious who don't wanna risk the chance of a migraine by clicking the wikipedia link: its how we are able to describe 24 hours with only 12 numbers... and now I think i can only get nerdier if I posted a picture of my c++ primer book as a Halloween costume
I'm not personally a big fan of snippets, the amount of time I spend trying to remember the abbreviation I find more productively spent just typing the 5-10 lines... that's within the context of VS Code though, on this site they're simple breakdowns of a process or concept and basic code example. Javascript, CSS, Python, Node.js, Functional Programming.... even topics like Data Structures (YAY), algorithims and
Modeling money, currencies & exchange rates using JavaScript
need to improve some section of code or a more effecient way to store, sort or search data? go here, I can't remember time complexities except for some of the basic things and if I had to modify an algorithm (even just storing something for logs or whatever) can cause a loss of effecency by a noticable ammount when ran over 1mil items, but we're in math world right now using math terms so we want to know what happens when an infinite number of items is used... just how much can 1 statement change efficiency? enough for a user to think something froze, broke, or for them to turn A.D.D. and go back to Tik-Tok or to cause your screen to flicker at juuuuussssttt the right speed to make you sick
I wanted to share a fantastic resource that has really helped me on my web development journey: Web Skills.
This collection covers a wide range of essential topics, from HTML and CSS basics to more advanced JavaScript frameworks. Itโs been super useful for identifying the skills I need to focus on.
I love how it also dives into important areas like responsive design and APIs, which are crucial for building modern websites. The layout makes it easy to track my progress and see what I want to learn next.
Here are some key topics covered:
HTML/CSS: Foundational skills for building and styling web pages.
JavaScript: Essential for adding interactivity and functionality to websites.
Frameworks & Libraries: Insights into popular tools like React, Angular, and Vue.
Version Control: Understanding Git and GitHub for collaborative coding.
Responsive Design: Techniques to ensure websites work well on all devices.
APIs: Learning how to interact with and utilize various APIs.
Web Performance: Best practices for optimizing loading times and user experience.
Accessibility: Ensuring websites are usable for everyone, regardless of ability.
Web Components: Building reusable components for web applications.
Progressive Web Apps: Creating apps that provide a native-like experience on the web.
Build Tools: Streamlining the development process with tools like Webpack and Gulp.
Testing: Techniques for ensuring your code is reliable and bug-free.
Architecture and Paradigms: Understanding different approaches to building applications.
Team Collaboration: Best practices for working effectively in a team setting.
Design and UX: Creating user-friendly and visually appealing interfaces.
The Modern Web: Staying updated with the latest trends and technologies.
Algorithms and Data Structures: Building a strong foundation in programming concepts.
Databases and Servers: Understanding how to manage data and server-side logic.
Honestly, itโs been super helpful and even a bit fun to explore. If you're looking to level up your web skills, give it a look!