I’ve recently published How I stay up-to-date as a Developer. That story was, of course, about how to get to know all these new “shiny” technologies. It was also a bit about learning but it was mostly about knowing these things exist. The question now is: What if you want to actually learn them? Again, I want to emphasize that you should not jump on the bandwagon of every new technology, first because you don’t need to, and second because this would lead you into tech-fatigue, burning out, a dysfunctional social life, depression and potential suicide (☉_☉). But suppose you decided to learn this new thing anyway, how do you do it?
Step 1 — The theory
There are 2 types of learners, the readers and the watchers.
If you’re a reader, the best way to go is usually heading to the website of the technology you wish to learn. It hasn’t been always like this, but today, most websites have great “getting started” and “documentation” sections. Some will even guide you through interactive tutorials. Books are also an excellent way of learning, and I guess they’ll always be. If you are a book person, check out Safari Books Online. Great resource.
If you’re a watcher, jump to PluralSight or LinuxAcademy. PluralSight’s strength is the variety of topics and also the fact that, besides technology, it includes the “creative” part where you can learn Photoshop, 3D Studio Max and a lot others. LinuxAcademy, in the other hand, shines for the hands-on labs, where it actually guides you through doing stuff. It’s not limited to videos, but most of the content is about Devops tools, cloud and, of course, Linux. There’s also Egghead, WatchMeCode, Edx, Udemy, Udacity and LernVern.
Step 2 — The Action
This is finally where I wanted go. The action. You have to do in order to learn. You have to try stuff, break stuff, regret you ever tried, overcome your laziness and get s**it done. I’m not talking these useless “hello world” s**t. I’m talking about building something real and with a purpose, from the beginning to the end. You can do it!
Also, this is a magnificent way to starting an open-source project on GitHub, if you didn’t yet. When you’re interviewing, one thing that shines is what you’ve done in the past. Now you can not only say you know it. You can show it!
And now, the ultimate question: What can you do? Not everybody is creative. If that’s your case, my friends, then brace yourselves, because it’s idea give-away time! \o/
App ideas — Part 1
These are not ground-breaking ideas, they’re not necessarily new, they’re probably not making you rich, but they’re simple enough for you to be able to execute them from the ground up, on your own. These are not not projects I have seen before (at least the way I imagine them) and they’re at least somewhat better than what you usually find in App Ideas and SomebodyMakeThis.
Also, don’t forget to pick up a boilerplate if you don’t want to start from scratch. And if you set forth to implement one of these, please let me know =) The following names are fictional, pick whatever you want.
DevBoard is a developer oriented news aggregator website with a columns layout like Trello and TweetDeck. The users can set up their own boards picking up columns from multiple sources, like Twitter, Medium publications, Subreddits, Hackernews, Stackoverflow tags/hottest questions, GitHub trending repositories and CodePen picked pens.
You can start up small and keep adding more sources as it becomes more popular. This would be an all-in-one replacement for my article How I stay up-to-date as a Developer.
I would definitely use it.
QuestionMark is an Electron application for creating and taking exams and certifications. If the user chooses to create an exam, he/she can set up properties like the Title, Duration and the Number of Questions. The exam is saved locally in the hard drive as a JSON file. The user can also choose to create a question. Questions have properties like Title, a list of Alternatives and other properties like Randomize. Questions must be saved as JSON files in the “Questions” folder inside the exam folder. The user can, of course, use this app to actually take and exam. So, even though there might be 2000 questions there, when you select an the exam, if it’s only configured to use 30 questions, these questions will be randomly selected out of the available 2000.
Now, create separate repository on GitHub where users can submit pull-requests with their own exams and questions. They can also add new questions to the existing exams.
I would certainly use it for studying for my certifications.
Many companies, especially those building data-centric business applications, need a Workflow module. In the past, Workflows were synonymous with BPMN, but that changed. Services like Integromat, Zapier and Microsoft Flow proved that Workflows can be made more attractive by letting go of formalities and making things simpler. However, these services became famous by appealing to the end-user through 500+ app integrations.
GitLab has made a profitable business from an open-source project by combining the love for GitHub with the fact that many enterprises won’t expose their source-code / intellectual property to a 3rd party cloud like GitHub. SparkFlow follows the same business model.
SparkFlow is an open-source Workflow App, focused on being integrated into existing products, not the end-user, with an interface inspired by Integromat but without all those App integrations. It has just 4 kinds of element:
- Webhook start: This is one way of starting a flow. SparkFlow gives you a URL and you call it passing whatever data you’d like. The passed data is now bound to the flow instance and can be used in Filters to take decisions.
- Timer start: This is another way of starting a flow: Every X minutes, or every day/week/month at a particular time.
- Filter: Also known as decision. This, of course, allows the flow to “fork”. Whether or not the flow is going to move in a particular direction depends on the evaluation of expressions based on the flow data (e.g AppointmentType == “personal”)
- API request: Instead of integrating with lots of apps, SparkFlow has only 1 active trigger. It calls an API using either basic authentication, OAuth or no auth at all. Because we’re aiming at product integration, we just need to call the target product API and the cycle is complete.
The company I work for would love it.
App ideas — Part 2
My brain has a thread dedicated to spitting out App ideas. It works in such an extent that sometimes I have to meditate to make it stop ¯\_(ツ)_/¯. There are plenty where these came from. I’ll give them away in future posts, if people show interest.
The best way to learn is by doing. Unleash your creativity and don’t fear failure. Find some time on your schedule and start being a creator, not just a consumer. You can do it. Also, get things done. Don’t jump from one project to the other. Your brain will try to convince you that the newer idea is always better. Don’t listen to it. Focus. Delivering is a feature.