<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dany Tulumidis</title>
    <description>The latest articles on DEV Community by Dany Tulumidis (@danytulumidis).</description>
    <link>https://dev.to/danytulumidis</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F163369%2F53ff8e65-0987-40e2-b47a-3ebd8f865e9c.jpeg</url>
      <title>DEV Community: Dany Tulumidis</title>
      <link>https://dev.to/danytulumidis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/danytulumidis"/>
    <language>en</language>
    <item>
      <title>Your IDE is not your identity</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sun, 22 Jun 2025 19:59:38 +0000</pubDate>
      <link>https://dev.to/danytulumidis/your-ide-is-not-your-identity-2e7c</link>
      <guid>https://dev.to/danytulumidis/your-ide-is-not-your-identity-2e7c</guid>
      <description>&lt;p&gt;I love customizing my IDE. Especially when it comes to the visual appearance. I spend hours finding the right theme, customizing the keymaps, adjusting and arranging the windows so that everything looks exactly the way I want it to. The IDE is something very personal. Or at least it is for me and many others. There are also psychopaths who install the IDE and just leave everything as it is. Yes, exactly with the default color theme! That's really beyond my comprehension. But anyway, this is about something else. It's not about the IDE but about the person in front of it and what you do with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Its a Cult
&lt;/h2&gt;

&lt;p&gt;Thinking of Neovim? You guessed right. I worked with it myself for a few months. And still do regularly but for all that is holy, it's not the only true IDE for “real” developers.&lt;/p&gt;

&lt;p&gt;VsCode is not the best IDE (blabla its a Code eDiTor blabla) just because it is the most widely used and has 9123012390123 plugins.&lt;/p&gt;

&lt;p&gt;NotePad++ is the best IDE.&lt;/p&gt;

&lt;p&gt;No matter what you use, don't defend your IDE like it's your first born child and the most sacred thing you own. And above all, don't take it personally.&lt;/p&gt;

&lt;h2&gt;
  
  
  Productivity is not due to the IDE
&lt;/h2&gt;

&lt;p&gt;A shocker! Spending 412 hours setting up and perfecting your IDE (Neovim) does not make you productive. Quite the opposite. Get to know your IDE, learn the shortcuts, learn what you can do with it. But above all, take care of THE CODE. You use the IDE for coding so use it for that and not to make it look like something out of a fucking Matrix Hacker movie.&lt;br&gt;
And I know what I'm talking about, I've done it all to a certain extent. It's about the code in the IDE and not about what's around it. The feature won't be finished any faster, the bug won't disappear any faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your Identity is not your IDE or vice versa
&lt;/h2&gt;

&lt;p&gt;Like food, the IDE is very personal. And it's okay to take your time and find the right colors and icons. And it's even more okay to get to know your IDE properly. In fact, it should be a must. It's a tool and if you know how to use it efficiently - oh boy it's a blast.&lt;/p&gt;

&lt;p&gt;But your IDE is not the best. Your IDE is not your favorite sports team that you defend to the death (which is just as stupid). Your IDE is special. For you. And that's perfectly okay and, up to a certain point, even healthy and right. Try yourself out. I've tried a lot of things and still do. I've tried everything from Neovim to Jetbrains. I think it's like programming languages. There's something for everyone.&lt;/p&gt;

</description>
      <category>ide</category>
      <category>softwaredeveloper</category>
      <category>programming</category>
    </item>
    <item>
      <title>AI here and everywhere</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sun, 15 Jun 2025 18:02:57 +0000</pubDate>
      <link>https://dev.to/danytulumidis/ai-here-and-everywhere-dj8</link>
      <guid>https://dev.to/danytulumidis/ai-here-and-everywhere-dj8</guid>
      <description>&lt;p&gt;I understand that AI is a cool thing. It's amazing how far AI has come in the last few years. It can give you delicious recipes using only the things you have at home, help you do research, take over your homework completely or explain things to you. And programming too, of course. Oh, and pictures and videos anyway.&lt;br&gt;
Every startup, every new product, every web application advertises it. AI. But do we really always need it?&lt;/p&gt;

&lt;h2&gt;
  
  
  Just Hype?
&lt;/h2&gt;

&lt;p&gt;Everyone wants a piece of the pie and AI is a huge pie. Just like crypto was huge a few years ago, AI is now the big buzzword that everyone is talking about faster than you know what.&lt;br&gt;
But is it just hype or is there more to it? No, it's not just hype.&lt;br&gt;
It will and has already changed the world as we know it. But that doesn't mean that EVERYTHING needs AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI simply sells well
&lt;/h2&gt;

&lt;p&gt;And that already solves the mystery of why AI is used in every product, every advertisement and every application. It increases profit. But what should be much more important is whether it serves the product. Is AI being used sensibly? Does it bring added value? Using AI just for the sake of using it won't benefit anyone in the end. And I believe that the more technical the product, the better the customers know about technology and AI, the more obvious it becomes (hello Devin, you awesome software developer).&lt;/p&gt;

&lt;h2&gt;
  
  
  The cake is still big enough
&lt;/h2&gt;

&lt;p&gt;It's already been over 3 years. ChatGPT, Claude, Gemini, AI. There are more models than Javascript frameworks. Okay, maybe not yet, but soon. There are many cool products that use AI in a really creative and creative way. And this is just the beginning. There are still countless use cases, so many creative applications of AI that you can use in your product. Maybe your product doesn't need AI. But if you want a piece of the pie, if you want to ride the hype, if you want to sell better, then use AI. But find a way to use it in a way that makes sense for you. Ask AI how you can best incorporate it into your product. That really works.&lt;br&gt;
AI is cool. AI is new. AI is everywhere. Sometimes a bit overhyped. But I think one thing is pretty certain. We will never live without AI again. So it would probably be better to understand it better and how we can best use it. It's not a buzzword. It's not hype. But an opportunity.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Screw your favorite programming language</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sun, 08 Jun 2025 19:56:26 +0000</pubDate>
      <link>https://dev.to/danytulumidis/screw-your-favorite-programming-language-40c0</link>
      <guid>https://dev.to/danytulumidis/screw-your-favorite-programming-language-40c0</guid>
      <description>&lt;p&gt;Okay, maybe the title is a bit harsh, but this battle between developers and their programming languages is really annoying.&lt;/p&gt;

&lt;p&gt;“Rust is the future, it’s safe, it’s the best!11!!”&lt;br&gt;
“C is the godmother of languages and still the best!”&lt;br&gt;
“Haskell is the way!”&lt;br&gt;
“Javascript and vibe coding trust me bro!”&lt;br&gt;
“Go is easy and effective. Its just the best”&lt;/p&gt;

&lt;p&gt;It’s just a tool. I have my favorites too, but I would never go to war for them. Use the best tool for the job. If there are several, use the one you enjoy the most.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where does this thinking come from?
&lt;/h2&gt;

&lt;p&gt;Twitter. Or X.&lt;br&gt;
Okay maybe it’s a bit more complex and a bit older but holy shit social media really brings out the worst in people and it’s the same with software developers. Gatekeeping wherever possible. Everyone has THE right opinion.&lt;br&gt;
On top of that, we humans love to compare things.&lt;/p&gt;

&lt;p&gt;“Mine is better, bigger, stronger, smarter, blah blah blah”&lt;/p&gt;

&lt;p&gt;And Tech Twitter is a very special bubble. Most of the time I love this bubble. Peaceful, interesting, focused on technology and extremely motivated to learn. But sometimes there’s this toxic “I know better” opinion and then it gets really ugly really fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  One language to bind them all
&lt;/h2&gt;

&lt;p&gt;But does it exist? The “best” language that everyone talks about? The one that is objectively better than all the others? A language that has the power to bind them all?&lt;/p&gt;

&lt;p&gt;Of course. C.&lt;br&gt;
All joking aside. C is cool and certainly one of the most important and influential languages of our time, but the best? For some things for sure, but certainly not for everything. Otherwise we wouldn’t have languages like C++, Rust or Zig that try to improve and/or replace C.&lt;/p&gt;

&lt;p&gt;Rust!&lt;br&gt;
Nope. The syntax is really an attack on my retina and before I start a major project in Rust I’d rather write Assembly. Nevertheless, it’s an important language, the Borrow Checker is a cool thing and there’s a reason for the hype.&lt;/p&gt;

&lt;p&gt;Zig baby!&lt;br&gt;
Okay, I’m biased here. I love Zig, the syntax, completely compatible with C, great build system, low level etc.&lt;br&gt;
I think and hope that this language will become much more popular. But the best? Certainly not.&lt;/p&gt;

&lt;p&gt;Go, simple and effective!&lt;br&gt;
I like Go very much. It’s simple but you can still do everything with it. But I can understand people who find it boring. My first choice for any backend, especially in the web area.&lt;/p&gt;

&lt;p&gt;I could go on like this forever, but I think you understand what I mean.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Use the language that does the job best and that you prefer to work with. But don’t idolize the language. Don’t get too attached to one language. There are many, many very good languages. It’s okay to have your favorites but at the end of the day we all like different things and everything is subjective. Except of course the fact that Javascript is a crime against humanity.&lt;/p&gt;

</description>
      <category>softwareenginner</category>
      <category>softwaredeveloper</category>
      <category>programming</category>
      <category>programminglanguages</category>
    </item>
    <item>
      <title>Focus on one thing</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sun, 01 Jun 2025 18:12:49 +0000</pubDate>
      <link>https://dev.to/danytulumidis/focus-on-one-thing-2o1n</link>
      <guid>https://dev.to/danytulumidis/focus-on-one-thing-2o1n</guid>
      <description>&lt;h2&gt;
  
  
  Time is a resource
&lt;/h2&gt;

&lt;p&gt;If there's one thing I don't have enough of, it's time. And by that I mean time for all my projects, for everything that interests me, for everything I would like to learn. I love learning new things. Definitely a great skill and practically indispensable in my job as a software developer. But sometimes it's also a curse.&lt;/p&gt;

&lt;p&gt;I always try to organize my time as well as I can. Sometimes it works more or less well.&lt;br&gt;
But even if you have 5 projects and divide your time perfectly, you've also split your attention and focus into 5 parts. Nothing half and nothing whole. You jump from one project to the next and are always 50% focused on the next project. Focus? An illusion.&lt;br&gt;
And although I know all this and am aware of it, I fall into this trap again and again. Because this time it must be different. But it's not.&lt;/p&gt;

&lt;p&gt;I believe that this one thing is the reason why projects are not fulfilling, don't work or simply fall by the wayside.&lt;br&gt;
Time is the most valuable resource we have. Doing one thing, and really only one thing, and concentrating all your focus, energy and attention on it. That moves you forward. Is inspiring. Brings better results. And most importantly: more fulfilling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do one thing deeply
&lt;/h2&gt;

&lt;p&gt;Our brain can do many things, but one thing it cannot do. Multitasking. It is said that women are better at it than men. And that may be true. But it's still bad.&lt;br&gt;
The ability to concentrate fully on one thing is becoming increasingly rare. In a world full of distractions, short-form content and hype, we are trained to concentrate on 100 things at once. There is endless content. You can learn anything at any time and there's a video or blog post for everything.&lt;/p&gt;

&lt;p&gt;It is both a curse and a blessing. But this skill of doing one thing with everything you have is incredibly powerful. It may sound like a fortune cookie saying, but you really can do anything with it. It's a superpower.&lt;/p&gt;

&lt;h2&gt;
  
  
  There is no perfect
&lt;/h2&gt;

&lt;p&gt;One trap I often fall into is the fact that I believe that if I only do one thing, I have to do it perfectly. It has to be worth it, right? Bullshit.&lt;br&gt;
Of course you should always do your best, but it's always much more important to do something than not to do something because you're afraid of not doing it well enough. Perfection is the enemy of done. Very common in my profession.&lt;br&gt;
Just do it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;I wrote this blog mainly for myself. Of course I hope to help others but I personally struggle with this issue every day.&lt;br&gt;
I love learning new things. There are countless things I would like to learn, projects I want to do.&lt;br&gt;
But trying to do everything at the same time only leads to me not getting any of it done. It's a vicious circle.&lt;/p&gt;

&lt;p&gt;Focus on one thing. Don't split your attention and energy. Bundle them. Quality over quantity!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Care about your Craft</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sun, 25 May 2025 18:23:05 +0000</pubDate>
      <link>https://dev.to/danytulumidis/care-about-your-craft-f9b</link>
      <guid>https://dev.to/danytulumidis/care-about-your-craft-f9b</guid>
      <description>&lt;h2&gt;
  
  
  Software Engineering is not (only) about money
&lt;/h2&gt;

&lt;p&gt;A lot of people jump into coding because they think it's a good way to make a lot of money. Either by working for big tech or by building the next $1 million app. Maybe you come from a third world country and want to support your family, and I respect that.&lt;br&gt;
Maybe you just love money. I get it. And there's nothing wrong with that.&lt;br&gt;
Jobs in this field pay pretty well. Often exceptionally well. But that should not be your first and only reason for becoming a software engineer. It's not about the money. Software engineering is a craft. The world moves fast and we live in a world where it's all about the end result. Not about HOW we got there. Not about how well you did it. Product above all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Everything used to be better
&lt;/h2&gt;

&lt;p&gt;Everything used to be better. Fewer problems, better and friendlier people, better music, more money etc.&lt;br&gt;
Well, that's not true at all (except for the music). But some things were better in the past. And software is at the top of that list.&lt;br&gt;
I think one of the biggest reasons is: Limitations.&lt;br&gt;
RAM? 128 KB. Deal with it.&lt;br&gt;
CPU? 2 kHz. 4 bits!&lt;/p&gt;

&lt;p&gt;There were no shortcuts. You couldn't just throw more RAM or more power at it. You had fixed circumstances and it was about how you used them. Pokemon Red and Blue were 373 KB. Legendary games to this day, more than enough content, polished and soooo much fun. Nowadays every fooking Call of Duty update is multiple GBs!&lt;/p&gt;

&lt;p&gt;The result is that software is getting worse and worse and has been for decades. Web development is a big pile of abstractions and Javascript is everywhere. Bugs are already considered normal. “You can fix them later anyway.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Love your Craft
&lt;/h2&gt;

&lt;p&gt;I love software engineering. I love learning new things, I love looking under the hood. To understand how things work. Valuing resources and not following the mantra “make it work somehow”.&lt;/p&gt;

&lt;p&gt;That doesn't mean you should lose yourself in perfectionism.&lt;br&gt;
But how many new programmers start every day, start with web development and don't know how a compiler works? Don't know how binary works. That would be like a craftsman not knowing how to use his hammer. You just bang away at it, maybe using the wrong side of the hammer. In the end, the nail is somehow inside. Success?&lt;/p&gt;

&lt;p&gt;What I want to say:&lt;br&gt;
Love your craft. Try to understand it. It should be the least you can do to understand what you use and create every day.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Hardware is getting better and better. Faster and faster. Smaller and smaller. We are at a point where hardware is getting better and better and software is getting worse and worse.&lt;/p&gt;

&lt;p&gt;In a world where “vibe coding” is becoming more and more popular, it is all the more important that we take our craft seriously and do it with love. Our world is built on software. Make software great again!&lt;/p&gt;

</description>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>How to Transition from Web2 to Web3</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sat, 14 May 2022 04:28:47 +0000</pubDate>
      <link>https://dev.to/danytulumidis/how-to-transition-from-web2-to-web3-1n3g</link>
      <guid>https://dev.to/danytulumidis/how-to-transition-from-web2-to-web3-1n3g</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Hello there! My name is Dany and I'm a Full Stack Web Developer and currently transitioning from Web2 to Web3. My goal is to work in Web3 Full-Time and put all my time to make the Web more decentralized.&lt;/p&gt;

&lt;p&gt;I'm on this journey for about 4 months now and want to share my story and my tips with you. You may heard of this thing called Web3, about decentralization, Crypto, Blockchain, and NFTs. Maybe you also ask yourself “Should I get into Web3” or “How i can get into Web3”.&lt;/p&gt;

&lt;p&gt;These are the questions I want to answer right here, right now.&lt;/p&gt;

&lt;p&gt;It's important to note that this guide is especially for people that are already in the tech space and want to transition. For people that want to get started in tech, I will do a separate post in the future!&lt;/p&gt;

&lt;h1&gt;
  
  
  Agenda
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Find a reason&lt;/li&gt;
&lt;li&gt;Community is key&lt;/li&gt;
&lt;li&gt;Learn the fundamentals&lt;/li&gt;
&lt;li&gt;Resources&lt;/li&gt;
&lt;li&gt;Build Projects&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Find a Reason
&lt;/h1&gt;

&lt;p&gt;For me, this is the most important step. If you find a reason you will never lose motivation. And you will need Motivation in a space that changes every single day. Web3 is still very early. Something you learned last week could be obsolete by now. If you lack motivation this could break you.&lt;/p&gt;

&lt;p&gt;My motivation is decentralization. My goal is to fully decentralize our web for one simple reason. I want that the internet is run by us, the users, and not by big tech companies and the government. Platforms like YouTube, TikTok, etc. can do whatever they want with your account. One day you upload a video, the next day you are banned and your account is deleted. They can do this even without a reason. They own you and our data.&lt;/p&gt;

&lt;p&gt;Web3 wants to change this. Web3 is a vision that the users own their data and no one is excluded. We are just at the beginning and we have many open questions, like how to prevent users to upload harmful content with a central authority. I'm optimistic that we will find a solution for this in the future because I see so many nice and talented people in this space. Web3 isn't about money or scam. It's about the user.&lt;/p&gt;

&lt;h1&gt;
  
  
  Community is key
&lt;/h1&gt;

&lt;p&gt;This is true in every field. I think it's especially true in Web3. A few weeks before I dived into Web3 completely I started to use Twitter on a daily basis. It was one of the best decisions I made so far. I met so many nice, helpful and talented people out there! People that I call friends today.&lt;/p&gt;

&lt;p&gt;You have to know I'm more of an introverted person but on Tech Twitter I love to engage and talk to people. I know that Twitter can be very toxic but Tech Twitter is 100% awesome. Everyone tries to help, to motivate, teach, and to spread happiness.&lt;/p&gt;

&lt;p&gt;Although Web3 is pretty new you can already find many resources from where you can learn. It was overwhelming for me. Which one is the best? Which one suits me?&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning Platform and a community
&lt;/h2&gt;

&lt;p&gt;Then i found LearnWeb3DAO (Twitter: &lt;a href="https://twitter.com/LearnWeb3DAO" rel="noopener noreferrer"&gt;@LearnWeb3DAO&lt;/a&gt;). I can't express how happy I am to found this platform and this community.&lt;/p&gt;

&lt;p&gt;First of all, they offer a platform where you can learn Web3, from the very beginning to very advanced topics. All on your pace.&lt;/p&gt;

&lt;p&gt;Their website: &lt;a href="https://www.learnweb3.io/" rel="noopener noreferrer"&gt;https://www.learnweb3.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Right now they offer their 4 core tracks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Freshman&lt;/li&gt;
&lt;li&gt;Sophomore&lt;/li&gt;
&lt;li&gt;Junior&lt;/li&gt;
&lt;li&gt;Senior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That was exactly what I searched for. A structured learning path from the very beginning.&lt;/p&gt;

&lt;p&gt;Each track has multiple levels where you learn the core concepts of Blockchain and they also provide nice resources for you.&lt;/p&gt;

&lt;p&gt;On top of that, you can access their Discord Server. And that was the best thing I did while getting into Web3. At the time of writing this, we have reached over 19.000 Members. There are thousands of people that are learning Web3 and some even already working in this industry. Whenever you are stuck and have questions there will be someone who can help you.&lt;/p&gt;

&lt;p&gt;Also, we have multiple events and community calls each month. For example last month we had an event where multiple people showed us their projects. Or we had a Giveaway Event where people can win prizes. But the most important part is the people. Believe me when I say that it's really like a family.&lt;/p&gt;

&lt;p&gt;I can't emphasize enough how important it is to join and participate in a community.&lt;/p&gt;

&lt;p&gt;Sure you could do everything on your own and you may succeed. But it will take longer, it will be harder and you will not have this much fun. Community is key!&lt;/p&gt;

&lt;h1&gt;
  
  
  Learn the fundamentals
&lt;/h1&gt;

&lt;p&gt;If you are a developer and familiar with HTML, CSS, and JS you are halfway there! Web3 is not something that is completely new and will replace Web2. It's an addition. It's like Typescript and Javascript. Typescript adds nice features. In this case really amazing, world-changing features.&lt;/p&gt;

&lt;p&gt;There are many great resources out there to learn Web Development fundamentals and more blog posts about it. We live in a world where you can learn about development just from the internet. And that for free. If there is one course I would recommend for learning Web Development from scratch it would be that:&lt;br&gt;
&lt;a href="https://www.udemy.com/course/the-complete-web-developer-zero-to-mastery/" rel="noopener noreferrer"&gt;https://www.udemy.com/course/the-complete-web-developer-zero-to-mastery/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Blockchain and Solidity
&lt;/h2&gt;

&lt;p&gt;Now it's time to dive into Blockchain development. You may heard of Ethereum and it's for sure the most well-known Blockchain. And it's the one I would suggest to start with. The ecosystem is fantastic and you will find a ton of resources for it. The community is quite big and really nice.&lt;/p&gt;

&lt;p&gt;For Ethereum, you need to learn Solidity. Even if you don't want to write Smart Contracts on your own it's really important to understand what's happening under the hood. In my opinion, the best way to learn a programming language is through coding.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cryptozombies.io/" rel="noopener noreferrer"&gt;https://cryptozombies.io/&lt;/a&gt; is a website where you will learn basic and advanced Solidity by building a Zombie Game. How cool is that? It's really well written, easy to understand and you can practice by building a game.&lt;/p&gt;

&lt;h1&gt;
  
  
  Resources
&lt;/h1&gt;

&lt;p&gt;There are a ton of resources you can use to learn about Web3 and get into it. I guess you can already imagine what is my number one resource. Yes! Its LearnWeb3DAO. I think I already said why it's awesome. But we have more!&lt;/p&gt;

&lt;p&gt;Here are some great video content creators:&lt;/p&gt;

&lt;p&gt;Patrick Collins ⇒ &lt;a href="https://www.youtube.com/c/PatrickCollins" rel="noopener noreferrer"&gt;https://www.youtube.com/c/PatrickCollins&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Smart Contract Programmer ⇒ &lt;a href="https://www.youtube.com/channel/UCJWh7F3AFyQ_x01VKzr9eyA" rel="noopener noreferrer"&gt;https://www.youtube.com/channel/UCJWh7F3AFyQ_x01VKzr9eyA&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chainlink ⇒ &lt;a href="https://www.youtube.com/c/chainlink" rel="noopener noreferrer"&gt;https://www.youtube.com/c/chainlink&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dapp University ⇒ &lt;a href="https://www.youtube.com/c/DappUniversity" rel="noopener noreferrer"&gt;https://www.youtube.com/c/DappUniversity&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alchemy ⇒ &lt;a href="https://www.youtube.com/c/AlchemyPlatform" rel="noopener noreferrer"&gt;https://www.youtube.com/c/AlchemyPlatform&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Blockgeeks ⇒ &lt;a href="https://www.youtube.com/c/BlockGeeks" rel="noopener noreferrer"&gt;https://www.youtube.com/c/BlockGeeks&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;EatTheBlocks ⇒ &lt;a href="https://www.youtube.com/c/EatTheBlocks" rel="noopener noreferrer"&gt;https://www.youtube.com/c/EatTheBlocks&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Austin Griffith ⇒ &lt;a href="https://www.youtube.com/channel/UC_HI2i2peo1A-STdG22GFsA" rel="noopener noreferrer"&gt;https://www.youtube.com/channel/UC_HI2i2peo1A-STdG22GFsA&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Whiteboard Crypto ⇒ &lt;a href="https://www.youtube.com/c/WhiteboardCrypto" rel="noopener noreferrer"&gt;https://www.youtube.com/c/WhiteboardCrypto&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nader Dabit ⇒ &lt;a href="https://www.youtube.com/c/naderdabit" rel="noopener noreferrer"&gt;https://www.youtube.com/c/naderdabit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Twitter is also awesome. Especially Tech Twitter. And especially Web3 Tech Twitter!&lt;/p&gt;

&lt;p&gt;Here are some very nice Web3 content creators you can follow. They all provide constant and good content:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/abeltxor" rel="noopener noreferrer"&gt;Abel&lt;/a&gt; =&amp;gt; Awesome content, amazing threads&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/Haezurath" rel="noopener noreferrer"&gt;Kacie&lt;/a&gt; =&amp;gt; One of LearnWeb3DAO founders, working in Web3&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/haardikkk" rel="noopener noreferrer"&gt;Haardik&lt;/a&gt; =&amp;gt; One of LearnWeb3DAO founders, working in Web3&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/snoopies_eth" rel="noopener noreferrer"&gt;Sneh&lt;/a&gt; =&amp;gt; One of LearnWeb3DAO founders, working in Web3&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/PeterHolzer16" rel="noopener noreferrer"&gt;Peter&lt;/a&gt; =&amp;gt; Daily Web3 content and an amazing person&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/Web3Oscar" rel="noopener noreferrer"&gt;Oscar&lt;/a&gt; =&amp;gt; Provides Web3 content on a daily basis and explains it very well&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/balddev3" rel="noopener noreferrer"&gt;Balddev&lt;/a&gt; =&amp;gt; I love his content, always about Web3 and how to create a better web&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/dabit3" rel="noopener noreferrer"&gt;Nader Dabit&lt;/a&gt; =&amp;gt; A legend, already working in Web3 for me a must-follow&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/VittoStack" rel="noopener noreferrer"&gt;Vitto&lt;/a&gt; =&amp;gt; Super sympathetic guy, also working in Web3&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/Rahatcodes" rel="noopener noreferrer"&gt;Rahat&lt;/a&gt; =&amp;gt; Amazing Web3 and mostly Polygon Content&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/itsanishjain" rel="noopener noreferrer"&gt;Anish&lt;/a&gt; =&amp;gt; Talented young developer and share his learnings&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/Param_eth" rel="noopener noreferrer"&gt;Param&lt;/a&gt; =&amp;gt; Daily Web3 Content, amazing threads&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/SuhailKakar" rel="noopener noreferrer"&gt;Suhail&lt;/a&gt; =&amp;gt; Amazing young developer, Solidity Pro&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/FrancescoCiull4" rel="noopener noreferrer"&gt;Francesco&lt;/a&gt; =&amp;gt; His threads are awesome, Web3 enthusiasts and Docker Captain&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/GargEtisha" rel="noopener noreferrer"&gt;Etisha&lt;/a&gt; =&amp;gt; Amazing content, super sympathetic, know how to provide value&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/ntkris" rel="noopener noreferrer"&gt;Krishna&lt;/a&gt; =&amp;gt; Provides amazing Web3 content&lt;/p&gt;

&lt;p&gt;I could list over 100 people here but for now, this should be a good starting point. And if you are active in this bubble you will connect with all the others in no time!&lt;/p&gt;

&lt;h1&gt;
  
  
  Build Projects
&lt;/h1&gt;

&lt;p&gt;As developers, the best way to learn is to actually build projects. You will do this in the Tracks of LearnWeb3DAO but you should also build something on your own. If you go through Youtube you will find many, many tutorials where you will build NFT Marketplaces, a simple Token, NFT Collection, DAOs, etc.&lt;/p&gt;

&lt;p&gt;In the beginning, this is excellent because you will learn a lot because the creator will explain the code and what's going on.&lt;/p&gt;

&lt;p&gt;But don't get stuck in tutorial hell. Build things on your own.&lt;/p&gt;

&lt;p&gt;Many people (including myself) are struggling, in the beginning, to build a project without a tutorial. That's totally normal. One tip from me would be to take tutorials and after you finished the tutorial project you extend it with your own features.&lt;/p&gt;

&lt;p&gt;You will gain self-confidence and that will help you a lot while building something completely on your own.&lt;br&gt;
You don't have to invent the wheel. Just make multiple small fun projects or maybe one bigger project that you are passionate about.&lt;/p&gt;

&lt;h1&gt;
  
  
  Take your time
&lt;/h1&gt;

&lt;p&gt;You don't have to make a hard cut, quit your job, and jump right into Web3. Begin slowly, and engage on Twitter and Discord. Just be curious and always willing to learn new stuff. Every single day.&lt;br&gt;
And this will take time. Some people can invest one hour a day, some can put in 8 hours a day.&lt;br&gt;
I have a Full-Time Job and a family. I stand up very early every morning (Also at the weekends), to invest time to learn and build in Web3 and to engage with people on Twitter and Discord.&lt;br&gt;
Everyone has different circumstances. Find your way, use your time wisely and you will get your foot into this industry. Sooner or later.&lt;/p&gt;

&lt;h1&gt;
  
  
  Summary
&lt;/h1&gt;

&lt;p&gt;I hope this rough roadmap gives you the starting point to make the leap and start to explore this wonderful world of Decentralization, Blockchain, Crypto, NFTs, and co.&lt;/p&gt;

&lt;p&gt;If only one of you now is motivated to get into Web3 I'm more than happy!&lt;br&gt;
My goal is not only to develop in this space. My goal is also to help people get into this space. There are so many nice and talented people in this space. I'm sure you will be the next! Let's build a better Web. A better future. A decentralized future!&lt;/p&gt;

&lt;p&gt;Let's connect on &lt;a href="https://twitter.com/danytulumidis" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; and learn together. I post every day about Web3 and share my learnings with you.&lt;/p&gt;

&lt;p&gt;Don't forget to put on your biggest smile and enjoy your life!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>web3</category>
      <category>solidity</category>
    </item>
    <item>
      <title>Ceelei - A CLI tool for the CLI</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sun, 12 Sep 2021 10:53:05 +0000</pubDate>
      <link>https://dev.to/danytulumidis/ceelei-a-cli-tool-for-the-cli-286g</link>
      <guid>https://dev.to/danytulumidis/ceelei-a-cli-tool-for-the-cli-286g</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Hello there!&lt;br&gt;
This time I wanted to share a little tool I wrote last week that helps me in my daily work and maybe it's also helpful for others, for you!&lt;/p&gt;

&lt;h1&gt;
  
  
  The problem
&lt;/h1&gt;

&lt;p&gt;As a developer, I work inside the CLI. A lot. I really like it but how often I don't remember a specific command that I used months ago or maybe only days ago. Then I have to step out of the CLI and Google it or open my notes to search for it. This brings me out of my flow and discourages me to use the CLI sometimes.&lt;/p&gt;

&lt;h1&gt;
  
  
  The idea
&lt;/h1&gt;

&lt;p&gt;Last week I decided to learn some Golang. A programming language that was on my To-Learn-List for a long time. Searching for a project idea is often difficult. Then I really thought about problems I can solve for myself. Making my life a bit better.&lt;br&gt;
So my thoughts:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Improving my CLI workflow would be nice.&lt;br&gt;
Go and developing a CLI tool matches perfectly!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most important for me was that this project taught me the basics of Go, helps me in my daily work but isn't too big that it would cost me multiple weeks.&lt;/p&gt;

&lt;h1&gt;
  
  
  Ceelei
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/Dextavision/ceelei" rel="noopener noreferrer"&gt;Ceelei&lt;/a&gt; was born. Ceelei is my little CLI tool that now helps me in my daily work as a developer.&lt;br&gt;
You can add a command to your Ceelei list inside your CLI and list it at every time also inside the CLI. You don't need to leave the CLI at any time!&lt;br&gt;
It's completely written in Go and Open Source.&lt;br&gt;
The readme in the repository tells you everything you need to know about how to use it.&lt;br&gt;
Feel free to check it out, suggest ideas, or just use it for yourself.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Learning a new technology or programming language is the most fun when you can solve a problem that you face in your life.&lt;br&gt;
It was a lot of fun and maybe I will develop more features for it in the future.&lt;/p&gt;

&lt;p&gt;Stay connected to me and my content on &lt;a href="https://twitter.com/danytulumidis" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I love to improve myself every single day even if it's just a tiny bit!&lt;/p&gt;

&lt;p&gt;Stay safe and healthy guys!&lt;/p&gt;

&lt;p&gt;And as always: develop yourself!&lt;/p&gt;

</description>
      <category>go</category>
      <category>cli</category>
      <category>opensource</category>
    </item>
    <item>
      <title>5 useful CSS resources</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sun, 08 Aug 2021 08:59:54 +0000</pubDate>
      <link>https://dev.to/danytulumidis/5-useful-css-resources-42b2</link>
      <guid>https://dev.to/danytulumidis/5-useful-css-resources-42b2</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Hello there!&lt;br&gt;
CSS is like magic and there are tons of resources out there. I want to share 5 of them that I find very useful when working with CSS and I hope you will also find value in them.&lt;/p&gt;

&lt;h1&gt;
  
  
  1:  &lt;a href="https://css-tricks.com/" rel="noopener noreferrer"&gt;CSS Tricks&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;One of the best and well-known websites when it comes to CSS. Here you can find guides, tips and tricks and articles all around CSS. The articles are very well written and detailed.&lt;/p&gt;

&lt;h1&gt;
  
  
  2:  &lt;a href="https://cssminifier.com/" rel="noopener noreferrer"&gt;CSS Minifier&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;The name says it all. A very simple but useful little website where you can copy your well-structured CSS code and get it minified. It also offers an API.&lt;/p&gt;

&lt;h1&gt;
  
  
  3:  &lt;a href="https://grid.malven.co/" rel="noopener noreferrer"&gt;CSS Grid Cheatsheet&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;CSS Grid is super useful when it comes to building layouts on a website. I'm a big fan of it and prefer it over complete frameworks like Bootstrap because you have full control and it's very easy to build a layout with it. And on this website you have a lot of examples of well-known layouts that you can copy to your clipboard in one click.&lt;/p&gt;

&lt;h1&gt;
  
  
  4:  &lt;a href="https://darekkay.com/flexbox-cheatsheet/" rel="noopener noreferrer"&gt;CSS Flexbox Cheatsheet&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;CSS Flexbox is like a CSS Grid a tool integrated into CSS to build layouts on a website. Often you will use only one of them (preference) but they are really good if you combine them. On this website, you have an overview of the most basic and important properties with a little image next to them to see what they are doing.&lt;/p&gt;

&lt;h1&gt;
  
  
  5 :  &lt;a href="https://cssgradient.io/" rel="noopener noreferrer"&gt;CSS Gradient&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Gradients are very popular these days and on this website you can create it very easily with point&amp;amp;click and then copy the code to your clipboard.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I hope you will find these resources as useful as I do and they will help you in your development process.&lt;/p&gt;

&lt;p&gt;Stay connected to me and my content on &lt;a href="https://twitter.com/danytulumidis" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I love to improve myself every single day even if it's just a tiny bit!&lt;/p&gt;

&lt;p&gt;Stay safe and healthy guys!&lt;/p&gt;

&lt;p&gt;And as always: develop yourself!&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>css</category>
      <category>resources</category>
    </item>
    <item>
      <title>Stress-Free Productivity</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sun, 01 Aug 2021 09:11:06 +0000</pubDate>
      <link>https://dev.to/danytulumidis/stress-free-productivity-3hlk</link>
      <guid>https://dev.to/danytulumidis/stress-free-productivity-3hlk</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Hello there!&lt;br&gt;
At the moment I'm reading a &lt;a href="https://www.amazon.de/Getting-Things-Done-Stress-Free-Productivity/dp/0143126563" rel="noopener noreferrer"&gt;book&lt;/a&gt; about stress-free productivity and I want to share one or two tips that are mentioned in this book. These tips are really simple but I was surprised how effective they are if you follow them.&lt;/p&gt;

&lt;h1&gt;
  
  
  Capture
&lt;/h1&gt;

&lt;p&gt;The first thing that you have to know is this: &lt;em&gt;Your brain is not a storage&lt;/em&gt;. This simply means you have to stop using your brain to remember everything. And this is simple as you just have to write everything down that pops into your mind. And I really mean everything. You don't have to be very specific and also you don't need to write them down as a TODO. Just write them down as generic as you want them to be. You will clarify them later.&lt;/p&gt;

&lt;p&gt;This will clear your mind and your brain can do the things it's supposed to do: Thinking and solving problems and have new ideas.&lt;/p&gt;

&lt;p&gt;You can do it in whatever way you like it. For example, I like to sort them into simple blocks like &lt;strong&gt;Personal&lt;/strong&gt;, &lt;strong&gt;Flutter&lt;/strong&gt;, &lt;strong&gt;Side project ABC&lt;/strong&gt;, etc., and under these headlines, I write all things that are in my mind.&lt;/p&gt;

&lt;h1&gt;
  
  
  Clarify
&lt;/h1&gt;

&lt;p&gt;The next step is also pretty easy. Take your captured notes and clarify what actions need to be done. This is the step where you will take the notes and form a TODO list.&lt;/p&gt;

&lt;p&gt;This means that one point of your capture list can be one or more items on your TODO list based on how big or complicated it is. You have to consider things like if this item has to be done within a specific time range or even on a specific day. Then you can use a Calendar. Otherwise, a simple TODO list is all you need but the most important thing is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regardless of what Calendar you use or where you write down your captured items and TODOs: Your brain has to trust this system&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Otherwise, the whole thing is not very effective because the reason for this system is to take those things off your brain. If you trust your system your brain will have the capacity for the really important stuff in your life and your stress level will shrink enormously because if you have clarified all the things that were in your mind and know what to do with them you don't have to worry about anything.&lt;/p&gt;

&lt;h1&gt;
  
  
  Simple ToDo List
&lt;/h1&gt;

&lt;p&gt;As I said keep it simple. Choose whatever system you are most comfortable with and trust the most. For example for time-specific things, I use the normal Calendar App from Apple as it's synchronized between all my devices.&lt;/p&gt;

&lt;p&gt;And for all other stuff, I use Notion. Notion is really great because you can customize it to your needs and it's very user-friendly. You can take a text passage and transform it into a whole new page in two clicks. It's available on the web and on all devices and synchronizes between them. I highly recommend you test it if you don't know it yet.&lt;/p&gt;

&lt;p&gt;Of course, you also can do take notes on paper if you like it or use any other note-taking app. As I said the important thing is your brain trust it. Everything else is up to you.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;It's impressive how simple it can be to be more productive and simultaneously reduce your stress level dramatically because everything is captured and clarified. I hope you can take these tips and improve your life.&lt;/p&gt;

&lt;p&gt;Stay connected to me and my content on &lt;a href="https://twitter.com/danytulumidis" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I love to improve myself every single day even if it's just a tiny bit!&lt;/p&gt;

&lt;p&gt;Stay safe and healthy guys!&lt;/p&gt;

&lt;p&gt;And as always: develop yourself!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>tips</category>
    </item>
    <item>
      <title>Understand Constraints in Flutter</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sun, 11 Jul 2021 13:44:37 +0000</pubDate>
      <link>https://dev.to/danytulumidis/understand-constraints-in-flutter-2jkj</link>
      <guid>https://dev.to/danytulumidis/understand-constraints-in-flutter-2jkj</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Hello there!&lt;/p&gt;

&lt;p&gt;Another week, another Flutter blog post. This week I want to introduce you to constraints in Flutter. When building a UI in Flutter constraints are very important and I would bet you already met an error based on constraints (Unbounded constraints, nah sounds familiar?). I hope after this post you have a better understanding of constraints in Flutter so it will help you building awesome UI´s.&lt;/p&gt;

&lt;h1&gt;
  
  
  The general Rule
&lt;/h1&gt;

&lt;p&gt;There is one rule about Layout in Flutter. And every Flutter developer should know and understand this early in his/her career:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Constraints go down.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sizes go up.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parent sets position.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The whole post here is built around these rules and is key to understand constraints in Flutter.&lt;/p&gt;

&lt;h1&gt;
  
  
  What are constraints?
&lt;/h1&gt;

&lt;p&gt;Okay. Okay. But what are constraints?&lt;/p&gt;

&lt;p&gt;It's actually pretty simple. A constraint is nothing more than a set of 4 doubles. A minimum and maximum height and a minimum and maximum width.&lt;/p&gt;

&lt;p&gt;It's about the size of a widget and what are the minimum and maximum height/width. I like to compare it with a set of rules. And this analogy is even better when we come to the next important point.&lt;/p&gt;

&lt;h2&gt;
  
  
  The parent rules, the child wishes
&lt;/h2&gt;

&lt;p&gt;In a tree of widgets, we have parent widgets. Those parent widgets give their constraints (the rules) down to their child widgets. Like we do it to our children. The parent may say that the child can have a maximum height of 100px.&lt;/p&gt;

&lt;p&gt;And like in the real world the children have wishes and want something. In the case of Flutter, the child widgets take the constraints from their parents and based on these rules tell its parent widget which size it wants. In this example, the child cant exceed a height of 100px.&lt;/p&gt;

&lt;p&gt;A good point to refer to the general rule I mentioned above.&lt;br&gt;
&lt;strong&gt;Constraints go down&lt;/strong&gt; is just that. The parents give constraints down to their children. &lt;strong&gt;Sizes go up&lt;/strong&gt; is the other way around. The children widgets tell their parents which size it wants to be based on these constraints.&lt;/p&gt;

&lt;p&gt;I made a little diagram to visualize this for a better understanding:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8b4ctrckqmf7qitqn1nt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8b4ctrckqmf7qitqn1nt.png" alt="Flutter Constraints Diagram" width="800" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I marked the constraints with a red color and the sizes with a green color to really make it clear that constraints go down and the sizes go up.&lt;/p&gt;

&lt;h2&gt;
  
  
  Parents set position
&lt;/h2&gt;

&lt;p&gt;Although the children widget can wish for a size it doesn't decide where it gets positioned on the screen. This is done by its parent. And also it's important to mention that Flutter has to look over the whole Widget tree as almost every widget (besides the root widget) also has a parent widget that must be taken into consideration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tight vs Loose Constraints
&lt;/h2&gt;

&lt;p&gt;It may be that you come across terms like &lt;em&gt;tight&lt;/em&gt; or &lt;em&gt;loose&lt;/em&gt; constraints.&lt;br&gt;
Actually, it's pretty straight forwarded and the Container Widget is a very good example to explain these concepts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tight
&lt;/h3&gt;

&lt;p&gt;If a widget has tight constraints it means that the minimum width and height are equal to the maximum width and height. It's basically an exact size.&lt;br&gt;
On top of that, it also means that the widget can be as big as possible. The container widget is a good example here because without a child the container is as big as it can be.&lt;/p&gt;

&lt;h3&gt;
  
  
  Loose
&lt;/h3&gt;

&lt;p&gt;Loose constraints mean that the minimum width and height are equal to 0. The widget can be as small as it wants to be.&lt;/p&gt;

&lt;h1&gt;
  
  
  Box Constraints
&lt;/h1&gt;

&lt;p&gt;In Flutter, widgets are getting rendered by RenderBox Objects.&lt;/p&gt;

&lt;p&gt;There are 3 types of these RenderBox Objects:&lt;/p&gt;

&lt;h2&gt;
  
  
  As big as possible
&lt;/h2&gt;

&lt;p&gt;Good examples here are Center or ListView.&lt;/p&gt;

&lt;h2&gt;
  
  
  Same size as children
&lt;/h2&gt;

&lt;p&gt;Transform and Opacity widgets are mentionable here as they try to be the same size as their children's widgets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Particular Size
&lt;/h2&gt;

&lt;p&gt;Image and Text Widgets have a particular size.&lt;/p&gt;

&lt;h2&gt;
  
  
  Variations
&lt;/h2&gt;

&lt;p&gt;As I mentioned about some widgets are special and can switch between these types. For example, the Container Widget tries to be as big as possible but if you give it a children it has a particular size.&lt;/p&gt;

&lt;h1&gt;
  
  
  Unbounded Constraints
&lt;/h1&gt;

&lt;p&gt;Every Flutter developer knows this error. It's notorious!&lt;br&gt;
But what are unbounded constraints?&lt;/p&gt;

&lt;p&gt;Sometimes constraints are unbounded (unlimited, infinity). This means either maximum Width or maximum Heigth is equal to double.infinity.&lt;/p&gt;

&lt;p&gt;This error then happens when the RenderBox (our Widget) wants to be as big as possible but has unbounded constraints.&lt;/p&gt;

&lt;h1&gt;
  
  
  Resources
&lt;/h1&gt;

&lt;p&gt;I used the official Flutter documentation. It's fantastic!&lt;br&gt;
If you want to read about this topic I can highly recommend &lt;a href="https://flutter.dev/docs/development/ui/layout/constraints" rel="noopener noreferrer"&gt;Constraints&lt;/a&gt; and  &lt;a href="https://flutter.dev/docs/development/ui/layout/box-constraints" rel="noopener noreferrer"&gt;Box Constraints&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;I hopefully made constraints in Flutter clearer for you and you have a basic understanding of what happens when you build a Layout in Flutter and how Flutter decides which Widgets have which sizes.&lt;/p&gt;

&lt;p&gt;Stay connected to me and my content on &lt;a href="https://twitter.com/danytulumidis" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I love to improve myself every single day even if it's just a tiny bit!&lt;/p&gt;

&lt;p&gt;Stay safe and healthy guys!&lt;/p&gt;

&lt;p&gt;And as always: develop yourself!&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>appdeveloper</category>
      <category>developer</category>
    </item>
    <item>
      <title>How Flutter renders Widgets</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sun, 04 Jul 2021 14:59:31 +0000</pubDate>
      <link>https://dev.to/danytulumidis/how-flutter-renders-widgets-3c9f</link>
      <guid>https://dev.to/danytulumidis/how-flutter-renders-widgets-3c9f</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Hello there!&lt;/p&gt;

&lt;p&gt;On my way to master flutter widgets are key. In Flutter everything is a widget. And so it's crucial to understand how they work and how Flutter renders Widgets. It's a bit of theory but it will help you to better understand Flutter and write better, more efficient apps.&lt;/p&gt;

&lt;h1&gt;
  
  
  3 trees to rule them all
&lt;/h1&gt;

&lt;p&gt;The number 3 is magic. And especially in Flutter.&lt;br&gt;
Flutter uses 3 so-called trees. Imagine it like an ordinary tree in the forest with a treetop and leafs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 3 trees
&lt;/h2&gt;

&lt;p&gt;For every widget, you will have 3 objects. One in each tree.&lt;/p&gt;

&lt;h3&gt;
  
  
  Widget tree
&lt;/h3&gt;

&lt;p&gt;The first tree is called the &lt;strong&gt;Widget tree&lt;/strong&gt;. This is used to configure the User Interface. There you can configure the properties of the widget and decide how it should look.&lt;/p&gt;

&lt;h3&gt;
  
  
  Element tree
&lt;/h3&gt;

&lt;p&gt;The second tree is called the &lt;strong&gt;Element tree&lt;/strong&gt;. This is used to manage and update everything. And with everything, I mean the trees and all references. In the element tree are elements and an element is a specific instance of a widget. This may sound familiar to you if you know OOP (Object Oriented Programming) where you have classes and objects where objects are just instances of a class.&lt;/p&gt;

&lt;h3&gt;
  
  
  Render Tree
&lt;/h3&gt;

&lt;p&gt;The last missing piece is Render Object. Inside of the Render tree are render objects and this is basically what you are seeing on the screen. You &lt;strong&gt;don't&lt;/strong&gt; see widgets. You see render objects.&lt;br&gt;
Render objects will take care of the size, layout, and the actual painting to the screen.&lt;/p&gt;

&lt;h1&gt;
  
  
  How flutter renders widgets - The 3 states
&lt;/h1&gt;

&lt;p&gt;There it is again. The number 3!&lt;br&gt;
Flutter goes through 3 stages when rendering the widgets to the screen. Well, as we learned it's not the widgets we see on the screen. That's are the render objects. But how Flutter approaches this?&lt;/p&gt;

&lt;h2&gt;
  
  
  1. State: Configure
&lt;/h2&gt;

&lt;p&gt;As I mentioned above the widget tree holds the widgets and in this state, it's all about the configuration of our widgets. Via an API you assign properties and values to your widgets which gets hold by the widget tree.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. State: Life Cycle
&lt;/h2&gt;

&lt;p&gt;Here the whole life cycle of the UI gets managed. Also here it determines the components that are existing in your UI hierarchy. You can imagine this state as the glue between state 1 and 3.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. State: Paint
&lt;/h2&gt;

&lt;p&gt;Here the Render tree comes into play. All relevant things about painting will be done here. It takes care of constraints, how the childrens of widgets will actually look like, how big they should be. This is where the render objects get painted on the screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Okay, but why 3 trees?
&lt;/h2&gt;

&lt;p&gt;You may ask yourself by now "okay but why? Why Flutter not just use widgets and just one tree?".&lt;br&gt;
Actually a very good question.&lt;/p&gt;

&lt;h3&gt;
  
  
  Its about performance
&lt;/h3&gt;

&lt;p&gt;Ok, first things first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Widgets are immutable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You &lt;strong&gt;cant&lt;/strong&gt; change widgets. And this is basically why one widget tree is not enough. Just imagine you change for example a text widget. You would need a completely new widget because you can't change the exact same widget. And if you are working with Flutter you may know how often the UI can change.&lt;/p&gt;

&lt;p&gt;This means when a widget needs a change the widget object inside the widget tree gets replaced completely and cant be updated.&lt;/p&gt;

&lt;p&gt;And here the other 2 trees come into play.&lt;br&gt;
Both the Element and the Render Tree getting updated &lt;strong&gt;whenever possible&lt;/strong&gt; instead of created entirely new. And this is a massive performance boost!&lt;/p&gt;

&lt;h2&gt;
  
  
  Update or not to update?
&lt;/h2&gt;

&lt;p&gt;And how Flutter decides if the Element and Render Object can be updated?&lt;br&gt;
Let's imagine you have a Text Widget where you just change the text. The second you change it the CanUpdate Method of the Widget will check two things and if one of them is true the Render Object and Element Object gets updated instead of created entirely new objects.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the runtimeType (the widget type like Text, Column, Container, etc.) still the same?&lt;/li&gt;
&lt;li&gt;Is the key the same?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In our example, the runtimeType is still Text and so it's true and the Element Object will call the updateRenderObject Method that will make sure Render Object gets updated instead of re-created.&lt;/p&gt;

&lt;p&gt;The key is a property that you can give to almost every widget and helps Flutter identify a widget. Pretty useful especially for this purpose.&lt;/p&gt;

&lt;p&gt;And you can test this behavior quite easily. When you run a Flutter App inside your IDE and open the Flutter DevTools you will have this view:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjofcxswm8reyhfe96u8l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjofcxswm8reyhfe96u8l.png" alt="Flutter DevTools RenderObject ID" width="800" height="688"&gt;&lt;/a&gt;&lt;br&gt;
Here I selected a text widget and inside the red box, you see the Render Object. And this Render Object has an ID that starts with a # symbol. When you change the text for this Text Widget the ID will &lt;strong&gt;NOT&lt;/strong&gt; change. Feel free to try it out!&lt;/p&gt;

&lt;h1&gt;
  
  
  Summary in 1 sentence
&lt;/h1&gt;

&lt;p&gt;Flutter will try to re-use as many resources (objects in the trees) as possible while trying to create new objects as little as possible.&lt;/p&gt;

&lt;h1&gt;
  
  
  Resources
&lt;/h1&gt;

&lt;p&gt;There are 2 resources I used to learn about this topic and were super helpful to understand it.&lt;br&gt;
For the ones of you who are more into videos than pure text, I can highly recommend this of the official Flutter Youtube Channel:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=996ZgFRENMs&amp;amp;list=RDCMUCwXdFgeE9KYzlDdR7TG9cMw&amp;amp;ab_channel=Flutter" rel="noopener noreferrer"&gt;How Flutter renders widgets&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;And here are some text with deep dive into the matter in the official Flutter Docs (Flutter has the best documentation I have ever seen, you can basically learn everything from there):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://flutter.dev/docs/resources/architectural-overview#rendering-and-layout" rel="noopener noreferrer"&gt;Rendering and Layout&lt;/a&gt; &lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;That's it. Pretty cool and clever how Flutter renders widgets if you ask me! If you want to dive even deeper into the topic I can highly recommend the documentation link I posted above. I hope you enjoyed the read and learned something new that you can use to write even better Flutter apps!&lt;/p&gt;

&lt;p&gt;Stay connected to me and my content on &lt;a href="https://twitter.com/danytulumidis" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I love to improve myself every single day even if it's just a tiny bit!&lt;/p&gt;

&lt;p&gt;Stay safe and healthy guys!&lt;/p&gt;

&lt;p&gt;And as always: develop yourself!&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>widgets</category>
      <category>flutterdev</category>
    </item>
    <item>
      <title>Flutter Learning Roadmap V1</title>
      <dc:creator>Dany Tulumidis</dc:creator>
      <pubDate>Sat, 26 Jun 2021 18:41:31 +0000</pubDate>
      <link>https://dev.to/danytulumidis/flutter-learning-roadmap-v1-4bd5</link>
      <guid>https://dev.to/danytulumidis/flutter-learning-roadmap-v1-4bd5</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Hello there!&lt;br&gt;
Currently, I'm really into Flutter and I want to learn it inside out. I don't want to learn Flutter I want to be Flutter! So I thought this time a rough overview of all the topics would be nice so I have a rough structure to follow.&lt;/p&gt;

&lt;p&gt;Flutter is not that old but already has many topics and subtopics to learn and master. Everyone knows the feeling when too much knowledge is overwhelming and you don't even begin to study or let it slip half the way. So my idea is to have a rough Roadmap at first that will evolve over time the further I get.&lt;/p&gt;

&lt;p&gt;For all of you that are want to get into Flutter or currently getting into it, this first version of my Roadmap hopefully will help you.&lt;/p&gt;

&lt;h1&gt;
  
  
  Flutter Roadmap
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9qtly4j3anzffvrwccf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9qtly4j3anzffvrwccf.png" alt="Alt Text" width="800" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to read it
&lt;/h2&gt;

&lt;p&gt;I don't want to make it very strict. Without thousands of arrows and lines. It should more serve as a guidance. You can read it from top to bottom where I tried to make suggestions on which topics to learn first. The topics are grouped and you can distinguish them by the colors.&lt;/p&gt;

&lt;h1&gt;
  
  
  Whats next
&lt;/h1&gt;

&lt;p&gt;As i said above this Roadmap will evolve over time. As more I get into specific topics I will discover even more topics and subtopics. The end goal is to have a somehow perfect (at least to 99%) Roadmap for every upcoming Flutter Developer. If you have any suggestions for improvement please feel free to contribute to this Roadmap and drop a comment! I will upload it in my &lt;a href="https://github.com/Dextavision" rel="noopener noreferrer"&gt;Github Account&lt;/a&gt; in the next days where I update it in the future.&lt;/p&gt;

&lt;p&gt;When I'm finished I will announce it here.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Either you are an upcoming Flutter developer or interested to become one i hope you find this Roadmap and this approach to learn a topic helpful.&lt;/p&gt;

&lt;p&gt;Stay connected to me and my content on &lt;a href="https://twitter.com/danytulumidis" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I love to improve myself every single day even if it's just a tiny bit!&lt;/p&gt;

&lt;p&gt;Stay safe and healthy guys!&lt;/p&gt;

&lt;p&gt;And as always: develop yourself!&lt;/p&gt;

</description>
      <category>flutter</category>
      <category>developer</category>
      <category>roadmap</category>
    </item>
  </channel>
</rss>
