<?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>Forem: Elena Maroto</title>
    <description>The latest articles on Forem by Elena Maroto (@emaroto).</description>
    <link>https://forem.com/emaroto</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%2F322778%2F2865748f-c046-404c-8170-0ba030551f23.jpeg</url>
      <title>Forem: Elena Maroto</title>
      <link>https://forem.com/emaroto</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/emaroto"/>
    <language>en</language>
    <item>
      <title>Why you should hire a junior developer</title>
      <dc:creator>Elena Maroto</dc:creator>
      <pubDate>Thu, 03 Sep 2020 15:38:36 +0000</pubDate>
      <link>https://forem.com/codegram/why-you-should-hire-a-junior-developer-3ki4</link>
      <guid>https://forem.com/codegram/why-you-should-hire-a-junior-developer-3ki4</guid>
      <description>&lt;p&gt;If you are reading this, chances are you are either a recruiter doubting about why you should hire a junior dev, or a junior dev looking for a job and thinking "Aha, at last a post that will give me hope!". I feel your pain and I'm here with you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwc3ysjxpwebbe9xru34m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwc3ysjxpwebbe9xru34m.png" alt="A picture of Yoda saying: feel your pain I do"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, here's the thing. When you are a junior dev, whether recently graduated (from a bootcamp or other), self-taught or reconverted, it is really complicated to get a decent job. I know it first hand. I've been there. And in my case it was even more complicated because &lt;em&gt;I want it all&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;I was a junior dev looking for a remote job with flexibility... Gooood luck with that. 🍀&lt;/p&gt;

&lt;p&gt;It is hard enough to find a junior dev job, let alone looking for a remote one. Luckily for us, there's &lt;a href="https://www.codegram.com/" rel="noopener noreferrer"&gt;Codegram&lt;/a&gt;. 🎉🎉🎉&lt;/p&gt;

&lt;p&gt;About how and why a junior dev can be hired to work remotely, &lt;a href="https://www.codegram.com/blog/author/elisa-ramirez/" rel="noopener noreferrer"&gt;Elisa&lt;/a&gt; gives us her point of view &lt;a href="https://www.codegram.com/blog/my-learning-experience-in-a-fully-remote-company-as-a-junior-developer/" rel="noopener noreferrer"&gt;in this post&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;But I'm here to talk about why &lt;strong&gt;hiring a junior dev is good.&lt;/strong&gt;  Good for your business, for you as a manager or senior dev and for the poor, desperate junior dev looking for a job. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;But first things first&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Let's clarify something. A junior dev is not someone with knowledge in a thousand technologies, proficient in I don't know what and a thousand more requirements working for a very low salary. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's just an underpaid job.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2lubnzc0btys5pajizvs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2lubnzc0btys5pajizvs.png" alt="MUST HAVE SKILLS. 3+ years of Salesforce.com/Force.com development experience (using Apex, VisualForce). Experience developing user-interfaces using HTML, Javascript and CSS. NICE TO HAVE SKILLS. 5+ years of Object Oriented Programming (Java or C#.NET) development experience. SalesForce Lightning. Experience integrating Salesforce with 3rd party systems. SalesForce.com certifications (Developer, Advanced Developer) are a big asset.Expertise and Skills. Software Development, C# .NET 2-4 years. Software Development, Java 2-4 years."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This 👆👆👆 is &lt;strong&gt;NOT&lt;/strong&gt; a junior job. And yes, this comes from a real junior dev job offer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0a9o2c1um1j7a61pihzd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0a9o2c1um1j7a61pihzd.png" alt="A cute design of two puppies shaking hands and saying: Ok then, glad we cleared that up :)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;By no means I am trying to say that you should only hire junior devs. In fact, that would be a disaster for your company. But hiring junior devs comes with its share of benefits.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Impressive learning curve&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The good point about being a junior is that there is so much to learn. So, there is a lot of room for improvement and the learning curve would look something like this. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fz6hlffrgkql7xdmq1sly.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fz6hlffrgkql7xdmq1sly.png" alt="An image showing the learning curve in regards to experience. In the y axe we can read Learning, in the x axe we can read Experience. The curve is more steep when there is less experience and it flattens as experience increases."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although in development there is always so much to learn, the improvement is much more visible when you start as a junior dev, for obvious reasons. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A fresh pair of eyes&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Yes, a senior has more knowledge and sometimes that's all you need in your project. An expert able to get up to speed fast. But sometimes you just need another look at it, a fresh pair of eyes. &lt;/p&gt;

&lt;p&gt;Juniors are not that biased (regarding the project, the customer, the company culture or the methodology) so they are able to ask questions or even make proposals that other more senior devs wouldn't, just because it would seem stupid or obvious to them. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sometimes the solution comes from the simplest of the proposals and that, a junior can do.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Also, some juniors might come from other jobs and have just reconverted. Their experience in other fields can bring light and a different way of thinking to the table that can be very valuable.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Get that repetitive/ungrateful tasks done&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Remember that refactoring you've been meaning to do but never had the time to? Or simply you just thought it was boring and you wouldn't learn anything new? Well, your junior dev could use some of that!&lt;/p&gt;

&lt;p&gt;Being a junior means that almost everything is new and the most boring task for a senior could be a whole new improvement field for a junior.&lt;/p&gt;

&lt;p&gt;Like, e.g. we've taken advantage of summer time and students holidays to reorganize our Graphql resolvers in &lt;a href="http://empresaula.com/" rel="noopener noreferrer"&gt;Empresaula&lt;/a&gt;. Sure, after you've done it 50 times it doesn't bring anything that new to the table, but I for sure have learnt a big deal and had to deal with many issues that I wouldn't have faced otherwise. &lt;/p&gt;

&lt;p&gt;So, it is a win-win. You get that long-awaited task done and your junior learns a lot!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F51j5qslfdjz1p98wd4bq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F51j5qslfdjz1p98wd4bq.png" alt="An image showing two hands each holding a piece of a puzzle that fit together. When the pieces fit we can read the word success."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Educate them into your company culture, methodology, etc.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;If your junior is fresh-off-school, then the field is green all over. They do not have any previous experience, bias, etc. That doesn't mean they don't have an opinion, but they have less to compare to, and they are more willing to get guidance and follow procedures, etc. &lt;/p&gt;

&lt;p&gt;If your junior has reconverted, it means you have someone in your team who most likely left a stable job, maybe even a well paid job, to become a developer. They were even possibly a senior in another field. That's big. Making such a change is really difficult (I know it first hand). But it also means that this person is able and willing to adapt, to learn and to question themself. So they can not only embrace your company culture, but also bring fresh ideas to the table. That has a big value.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;It's cheaper and less risky&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;As I said at the beginning of the post, a junior dev post shouldn't hide an underpaid job. I cannot stress this enough: &lt;strong&gt;Experience has to be paid&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;That's why hiring a junior dev is cheaper. In exchange, and if you want this to be rewarding, you need to invest in them. Mainly in coaching and technical training. Otherwise, you could end up with a junior forever. And nobody wants that. Not you as an employer and for sure not the developer. Every person wants to evolve in their job. Help them do it and you won't be disappointed. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Think of a junior dev as a longtime investment. If you take the time, interest and right approach with your junior dev, you could get yourself a very loyal, very productive employee.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What about the risks? Well, you could argue that you might educate them and they would fly away. Yes, that is a possibility. But so can your senior devs. If this happens, the effects of having a junior vs a senior leaving are way less devastating. &lt;/p&gt;

&lt;p&gt;Ultimately, it is up to you to make your employees happy so they want to stay with you. And &lt;strong&gt;happiness at work is not foosball, free coffee or casual friday.&lt;/strong&gt; There's way more to it. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftryuu2zvwjkce1lp6v62.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftryuu2zvwjkce1lp6v62.png" alt="A graph image representing what makes happiness at work. In the center there is a circle with the words happiness at work. There are arrows coming out of it and pointing to rectangles with different words. From the top clockwise we can read. Personality Pattern. Social Connections. Autonomy and Decision making. Financial security. Scope for innovation and creativity. Acceptance and empathy. Challenges and diversity of tasks. Work-life balance."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are many other benefits to bring a junior dev to your team, but the main point of this post is to show that &lt;strong&gt;a junior is not only someone without much experience, but someone with a lot of potential.&lt;/strong&gt; And that is what you should be looking for. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The key to greatness is to look for people's potential and spend time developing it. Peter Drucker.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>Angular for Junior Backend Devs</title>
      <dc:creator>Elena Maroto</dc:creator>
      <pubDate>Mon, 22 Jun 2020 14:00:48 +0000</pubDate>
      <link>https://forem.com/codegram/angular-for-junior-backend-devs-3g8m</link>
      <guid>https://forem.com/codegram/angular-for-junior-backend-devs-3g8m</guid>
      <description>&lt;p&gt;So, by now you know I'm a junior web dev, right? If you don't... well, look at &lt;a href="https://www.codegram.com/blog/author/elena-maroto/"&gt;my previous posts&lt;/a&gt;, there are a few references there. &lt;/p&gt;

&lt;p&gt;Now, I'm not sure I've clarified this, but I am backend at ❤️. Like, from the day I was born (job-born). In my previous job as a developer I was developing in ABAP which is basically SAP's backend own language.&lt;/p&gt;

&lt;p&gt;I like the logic behind backend and I like specially the connections between systems, APIs, events, etc. &lt;/p&gt;

&lt;p&gt;Then I switched to web development and got trained as a FullStack dev. But still, my heart belonged to backend. Don't get me wrong, it still does, but let's say at Codegram I've decided to give frontend another chance. &lt;/p&gt;

&lt;p&gt;The first misconception that we backenders often make about frontend is that it is only about HTML and CSS. Placing stuff in the page and making it nice can be a bit of a nightmare. Also, there are soooo many possibilities that you can literally spend your day trying stuff and getting nowhere. Or that's at least my feeling and experience with those two.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oGIFYjFY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hmgz872aiij0dmirouco.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oGIFYjFY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hmgz872aiij0dmirouco.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anyhow, so I decided to give another go to FE, mostly because I had to work on some stuff in &lt;a href="http://empresaula.com/"&gt;Empresaula&lt;/a&gt; and because... why not?&lt;/p&gt;

&lt;p&gt;As you might also know from previous posts one of the widest used frameworks at Codegram is Angular. Not easy, I have to say! But it is nevertheless interesting. &lt;/p&gt;

&lt;p&gt;I can't say I know how to work with Angular back and forth, but I've got a few notions that might be interesting specially if you are a junior and just getting into it. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's dive in!&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_Ni2-8N0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8taa6mfn750ke13qsicx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_Ni2-8N0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8taa6mfn750ke13qsicx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first thing I was looking for when starting to learn Angular were the basics, like the very very basics, the architecture, how does it work and who talks to who. And this is what this post is all about. &lt;/p&gt;

&lt;p&gt;Needless to say that it has been complicated. The Angular learning curve is steep, to say the least, but with a bit of patience and going over the training about a thousand times can help...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First of, what is Angular?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Angular is a framework for building client applications using HTML and TypeScript. Angular is written in TypeScript. It implements core and optional functionality as a set of TypeScript libraries that you import into your apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's have a look to the basic elements of an Angular application. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nkvmEdl0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/it8yk66xj4d24hicexvh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nkvmEdl0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/it8yk66xj4d24hicexvh.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;small class="text-centered"&gt;From Todd Mottos' Angular Fundamentals course&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modules&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Angular apps are modular and Angular has its own modularity system called &lt;em&gt;Angular modules&lt;/em&gt; or &lt;em&gt;NgModules&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Angular modules&lt;/em&gt; are a big deal.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every Angular app has at least one Angular module, the root module, conventionally named AppModule. &lt;/p&gt;

&lt;p&gt;A module is a main building block of an application. We can have a single module, we can have multiple modules and we can have modules that depend on other modules. &lt;/p&gt;

&lt;p&gt;A module can contain components (like a feature component), services (like a service tied in with that particular feature) and routes (to decide which URL to go to in our app). &lt;/p&gt;

&lt;p&gt;E.g. in an email client app, each of the three boxes below would be a module.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HmxR8yRS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mvzbn9gt89g1y4mii6tm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HmxR8yRS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mvzbn9gt89g1y4mii6tm.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;small class="text-centered"&gt;From Todd Mottos' Angular Fundamentals course&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A component contains an HTML template, the data and the logic. It also forms part of the DOM tree. Components can be linked to other components. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vKDtkhVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/be9jvhjkgwv6r0bs7u7s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vKDtkhVm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/be9jvhjkgwv6r0bs7u7s.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;small class="text-centered"&gt;From Todd Mottos' Angular Fundamentals course&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;There are two different types of components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Container components (also called stateful or smart). These guys will contain data and render stateless child components.&lt;/li&gt;
&lt;li&gt;Presentation components (also called stateless or dumb). These guys will communicate with their parent container component through the @Input and @Output property bindings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A component can have services and directives linked to it. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Directives&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When Angular renders a template, it transforms the DOM according to the instructions given by directives.&lt;/p&gt;

&lt;p&gt;A directive is something that we can bind to an existing DOM element, an HTML element or a component. It can add behaviour and extend or transform a particular element and its children. &lt;/p&gt;

&lt;p&gt;Angular has a lot of built-in directives. Examples are ngIf, ngFor or ngRepeat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Services&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So now, we have structured our application, we are able to change our DOM with directives, but hey, where's the data? &lt;/p&gt;

&lt;p&gt;Well, well, well, that's what services are for! &lt;/p&gt;

&lt;p&gt;The service is basically where we will include any value, function or feature that the application needs and that it is not component related, such as e.g. API requests.  &lt;/p&gt;

&lt;p&gt;Imagine that we want to fetch data through an API, we'll pass it into the component, the component will render that data, we can make changes in the view and update the data in the backend. Both the fetching and the update logics would lie in one or different services. &lt;/p&gt;

&lt;p&gt;A service can be tied to a particular component to give it the data that it needs. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What about routing?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Well, simply put, routing is the guy that drives the navigation in our application.&lt;/p&gt;

&lt;p&gt;This guy will tell Angular which components to render based on the URL state. &lt;/p&gt;

&lt;p&gt;Here's an overview of how all these elements work with each other.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1uwmythJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/y320dosac7h3pq2c53p6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1uwmythJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/y320dosac7h3pq2c53p6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After some days both fighting against and learning a bit about Angular, I must say I am willing to continue diving and learning more frontend. Yes, there is more to it than just HTML and CSS. &lt;/p&gt;

&lt;p&gt;I find specially interesting the way each part of the puzzle interacts with each other. There are lots of events involved, and I told you I like events, so that's already something!&lt;/p&gt;

&lt;p&gt;Sure, Angular, is not the easiest way to get into it, but now I can only wonder about e.g. Vue.js. Maybe that'll be my next stop, who knows?&lt;/p&gt;

&lt;p&gt;&lt;span&gt;Cover Photo by &lt;a href="https://unsplash.com/@alevtakil?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Alev Takil&lt;/a&gt; on &lt;a href="/s/photos/angular?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

</description>
      <category>angular</category>
    </item>
    <item>
      <title>The Way to a Tight Knit Remote Team</title>
      <dc:creator>Elena Maroto</dc:creator>
      <pubDate>Fri, 22 May 2020 11:09:26 +0000</pubDate>
      <link>https://forem.com/codegram/the-way-to-a-tight-knit-remote-team-14o</link>
      <guid>https://forem.com/codegram/the-way-to-a-tight-knit-remote-team-14o</guid>
      <description>&lt;p&gt;If you've been following Codegram for a while, you must know by now that we are a remote first company. &lt;/p&gt;

&lt;p&gt;That doesn't come without challenges, but that's not what I want to talk about today. Instead, I want to give you some insights about how Codegram works as a remote company and how we keep the team spirit going.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with why&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;(Why I'm doing this post, not why Codegram is a remote company. Sorry! 😅)&lt;/p&gt;

&lt;p&gt;So, the why is a nice comment I received today from my colleague &lt;a href="https://www.codegram.com/blog/author/svenja-schaefer/"&gt;Svenja&lt;/a&gt; (you know her, she's the one in love with &lt;a href="https://www.codegram.com/blog/tag/reg-ex/"&gt;RegExp&lt;/a&gt; 🙄). &lt;/p&gt;

&lt;p&gt;See, one of the nice things we do every week is meeting for coffee with one or two other people, and then our friend &lt;a href="https://ultimatecourses.slack.com/apps/A11MJ51SR-donut"&gt;Donut&lt;/a&gt; asks for a nice comment on it (spoiler: Donut is actually an app). I admit I am bad at leaving those comments (I don't know, I feel cheesy and I would most certainly cry while writing them... don't ask), but aside from being useless at that, it is always nice to receive a message from someone else. My dear colleagues, take this both as a thank you and a sorry. 🙏🏼&lt;/p&gt;

&lt;p&gt;So, that's it. I received a nice message from Svenja (she made my day) about our last coffee and then I thought of the nice things that make us feel connected in this company and that I enjoy so much. And I thought it would be nice to share it with the world out there. Sooooooooo&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, the non-work stuff&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qm66I9gj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1496843916299-590492c751f4%3Fixlib%3Drb-1.2.1%26q%3D85%26fm%3Djpg%26crop%3Dentropy%26cs%3Dsrgb" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qm66I9gj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images.unsplash.com/photo-1496843916299-590492c751f4%3Fixlib%3Drb-1.2.1%26q%3D85%26fm%3Djpg%26crop%3Dentropy%26cs%3Dsrgb" alt="https://images.unsplash.com/photo-1496843916299-590492c751f4?ixlib=rb-1.2.1&amp;amp;q=85&amp;amp;fm=jpg&amp;amp;crop=entropy&amp;amp;cs=srgb"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cause, you know... &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.codegram.com/blog/keeping-the-distributed-team-connected/"&gt;The Codegram Times&lt;/a&gt;&lt;/strong&gt; - This might be classed as both work and non-work related. &lt;/p&gt;

&lt;p&gt;It is first in line because it comes usually on Monday and to be honest, it makes me start my week with a smile on. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codegram.com/blog/author/georgina-cruells/"&gt;Georgina&lt;/a&gt;, our office manager, prepares every week a curated bulletin in Notion. It starts with a culture note, then goes on with inputs from tech leads on advancements during the previous week, then she shares some off-work stuff from team members. This could come from twitter, private conversations or from our Telegram "Offwork" group. And you learn pretty interesting things about your colleagues that way! (Don't worry, she always asks before publishing.)&lt;/p&gt;

&lt;p&gt;The Times ends with one or two questions like "What are you reading right now?" or "What is your favourite smell?". And we can all participate with our comments afterwards. It is very entertaining!&lt;/p&gt;

&lt;p&gt;I know for a fact that I'm not the only one who starts the week smiling thanks to this. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cXG_8iTJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f5e0c0ke674qazudpnuz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cXG_8iTJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f5e0c0ke674qazudpnuz.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coffee-buddies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another great thing to keep the team connected. &lt;/p&gt;

&lt;p&gt;See, when you work remotely you don't have a coffee machine where you can chat about everything and anything, so you gotta do something right? So we've set up Donut for Slack.&lt;/p&gt;

&lt;p&gt;Our friend Donut pairs up 2 or 3 people every week and then you schedule a short meeting of 30 minutes... just to chat. This is a very nice thing to do, cause it allows you to meet your peers wherever they are. &lt;/p&gt;

&lt;p&gt;Then Donut asks for a comment on how it went and... well, you know the story. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MAYe7tku--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zxpslclitb3gftbhdfg5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MAYe7tku--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/zxpslclitb3gftbhdfg5.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tacos! Tacos everywhere! 🌮&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Have you watched "Cloudy with a Chance of Meatballs"? At Codegram is "Sunny with a Chance of Tacos". &lt;/p&gt;

&lt;p&gt;So, here is the thing. One day our &lt;a href="https://www.codegram.com/blog/author/josep-jaume/"&gt;Engineering Cheer Leader&lt;/a&gt; (or CTO for short) decided (don't ask why or how) that it would be a nice thing to offer tacos here and there. Oh, they are virtual tacos, but they are so fun!&lt;/p&gt;

&lt;p&gt;Your last blogpost was a hit? &lt;strong&gt;🌮&lt;/strong&gt; You helped someone else figure out something and unlock them? &lt;strong&gt;🌮&lt;/strong&gt; You learned something new and shared it? &lt;strong&gt;🌮&lt;/strong&gt; You get the idea. Tacos! Tacos everywhere!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We're out of tacos for now, but I know for a fact that there are more in the making. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Off-work Slack channels&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because not only of work the man lives (pun intended... I know, I know... 🙄).&lt;/p&gt;

&lt;p&gt;We use Slack mainly for work (did I tell you we work as well?), but we have a few off-work channels to, you know... not work.&lt;/p&gt;

&lt;p&gt;Examples are:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;health-and-fitness&lt;/em&gt; - fueled by love handles 100%&lt;/p&gt;

&lt;p&gt;&lt;em&gt;jukebox&lt;/em&gt; - 🎶 Share your best jams! &lt;/p&gt;

&lt;p&gt;&lt;em&gt;random&lt;/em&gt; - General banter&lt;/p&gt;

&lt;p&gt;&lt;em&gt;languages&lt;/em&gt; - A channel to share resources about learning new (human, non-programming) languages&lt;/p&gt;

&lt;p&gt;&lt;em&gt;camera-cafe&lt;/em&gt; - A channel for everyone to join when having a coffee / lunch or just looking for watercooler conversation ☕️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Off-work Telegram group&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another place where we keep connected off-work and off-computer.&lt;/p&gt;

&lt;p&gt;Here you can find a little bit of everything. The last vegan recipe, the last picture of a cardboard castle built during lockdown, pics of sluggish dogs, cats, bread, bad jokes (many bad jokes). Everything goes! That is, everything respectful. R E S P E C T. Always.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Weekly company wide video call&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This started during lockdown, so we could be (more) connected but I bet it is here to stay. It happens every Friday at 4 pm and every week there is a theme. &lt;/p&gt;

&lt;p&gt;This week's theme? "&lt;em&gt;Imagine that you have applied (maybe with your family too) to go to Mars and in an interview you have to say why they should select you, what you can contribute and what sector you’d like to work in"&lt;/em&gt;. Apparently Georgina came up with that idea during breakfast... and it was really fun!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hvr6hhoK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ep3d3gff46wsxqubsvvc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hvr6hhoK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ep3d3gff46wsxqubsvvc.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Other theme's have been, "&lt;em&gt;What's something you've done in your life that you are really proud of?&lt;/em&gt;" or "&lt;em&gt;Show and tell. Show us your favourite object and tell us why&lt;/em&gt;" or yet "&lt;em&gt;Tell us a moment of your life when you were really, really embarrassed&lt;/em&gt;".&lt;/p&gt;

&lt;p&gt;These calls make for some interesting conversation and are a very good kick start for the weekend. &lt;/p&gt;

&lt;p&gt;And speaking of weekend, it is Friday and I'm off!!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rcxbHbYA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pzf9wcd10d0s2a969pl8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rcxbHbYA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pzf9wcd10d0s2a969pl8.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Oh, yes, there's still the work part right? Ok, ok, I promise I'll come back with it. Stay tuned!&lt;/p&gt;

</description>
      <category>culture</category>
      <category>remote</category>
    </item>
    <item>
      <title>About programming languages</title>
      <dc:creator>Elena Maroto</dc:creator>
      <pubDate>Tue, 07 Apr 2020 17:05:34 +0000</pubDate>
      <link>https://forem.com/codegram/about-programming-languages-2a51</link>
      <guid>https://forem.com/codegram/about-programming-languages-2a51</guid>
      <description>&lt;p&gt;So, I've been trying to focus a little bit more on my training, being that I am a junior and all. &lt;/p&gt;

&lt;p&gt;My current goal is to finish a chapter a day of a book recommended by our CTO "&lt;a href="https://pragprog.com/book/ppmetr2/metaprogramming-ruby-2"&gt;Metaprogramming Ruby&lt;/a&gt;". While I achieved my goal today, it has required a little bit of focus. The book seems quite interesting and concentration was good until one question popped in my mind. 💡 What other metaprogramming languages do I know? &lt;/p&gt;

&lt;blockquote&gt;"Metaprogramming is writing code that writes code."
&lt;br&gt;&lt;small&gt;Excerpt From: Paolo Perrotta. “Metaprogramming Ruby 2”.&lt;/small&gt;
&lt;/blockquote&gt;

&lt;p&gt;Of course I lost concentration and I went asking almighty google. And the non-less almighty wikipedia readily answered. Well, not directly to my question but still... And I found out that there are no less than 50 kinds of programming languages!! Some of them are sub-categories and classifications from different angles but still... 50! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x5XBtKH8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0gn2k40rlsb2v87wo462.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x5XBtKH8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0gn2k40rlsb2v87wo462.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So I started wandering around the wikipedia classification and identified some languages I knew (oh, yes, forgot to say I'm not a "real junior". I was a developer before, but I'm a junior at web development). &lt;/p&gt;

&lt;p&gt;While checking that, and learning more about types of programming languages, some rather nice and interesting memories came to mind. And I felt like sharing them, cause, you know... &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gz08PnRe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hj7oun5so82vsm9mf3xc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gz08PnRe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hj7oun5so82vsm9mf3xc.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What surprised me the most was the amount of different types. Of course a certain language can fall under different classifications, but still. I barely remembered compiled and interpreted languages from my university days. Maybe also procedural rang a bell... but that's about it. &lt;/p&gt;

&lt;p&gt;So, here it comes. My thoughts and  memories from working at a certain point in my life with some of those languages. &lt;/p&gt;

&lt;p&gt;If you came here looking for a thorough description of all categories or a very technical-ly post, sorry to disappoint you... this ain't it. Look at it more as a recreational walk through my "programming life". &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SRAgjstZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wjbdelvwwt9d6j3ph8w5.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRAgjstZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wjbdelvwwt9d6j3ph8w5.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's start with COBOL&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/COBOL"&gt;COBOL&lt;/a&gt; falls under three different classifications: &lt;a href="https://en.wikipedia.org/wiki/Compiled_language"&gt;Compiled&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Imperative_programming"&gt;Imperative&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/Procedural_programming"&gt;Procedural&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This language was designed in 1959 and yes, my friends, I've used COBOL. It was back in... oh gosh, it was so long ago that I would need to calculate the dates... Anyhow, I remember it was before university, at technical high school. And I remember writing code one day, leaving it compile overnight, coming back the next day and finding out the results of either the execution or the errors printed in a gigantic perforated-paper printer. Yes, I am that old... &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FNe15vIj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6x6ig7x8ramu2uh6yast.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FNe15vIj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6x6ig7x8ramu2uh6yast.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can imagine how complicated that was. We were doing small simple programs, we were students but still, a small mistake would mean having to wait yet another day to have the results. &lt;/p&gt;

&lt;p&gt;It has obviously evolved over the years and since 2002 it has become an  &lt;a href="https://en.wikipedia.org/wiki/Object-oriented_programming"&gt;Object-oriented&lt;/a&gt; language since then.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next in memory lane is ADA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Ada_(programming_language)"&gt;ADA&lt;/a&gt; falls yet again under many classifications: &lt;a href="https://en.wikipedia.org/wiki/Compiled_language"&gt;Compiled&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Concurrent_computing"&gt;Concurrent&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Imperative_programming"&gt;Imperative&lt;/a&gt; - &lt;a href="https://en.wikipedia.org/wiki/Procedural_programming"&gt;Procedural&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Programming_paradigm#Support_for_multiple_paradigms"&gt;Multi-paradigm&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Object-oriented_programming"&gt;Object-oriented&lt;/a&gt;  and System programming language with manual and deterministic memory management (no link for this, sorry, look it up 👀).&lt;/p&gt;

&lt;p&gt;The only thing I remember about ADA is that it helped me pass my Operative Systems exam in my last year of university. I remember it was a simple language (it might be because of OO). And I remember telling my friends that studying ADA could actually save us from failing the exam. I thought of it as a low investment high ROI. Turns out it was a good strategy... for me. Many of them didn't listen... and failed. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I2DtmFNe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ev8tc71k0p7cot8vtbez.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I2DtmFNe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ev8tc71k0p7cot8vtbez.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lets talk about C&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not that I like &lt;a href="https://en.wikipedia.org/wiki/C_(programming_language)"&gt;C&lt;/a&gt;, in fact this is the only subject I dropped in university. I simply hated it. My sister though, loved it. I remember having to write some code to simulate a typewriter. Having to manipulate all the memory directly and all that complicated stuff, I just simply couldn't stand it. Always found it way too complicated. Hate, hate, hate. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zql8t5X1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ff7a6lzq5b16ip7rwn4x.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zql8t5X1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ff7a6lzq5b16ip7rwn4x.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;C is also &lt;a href="https://en.wikipedia.org/wiki/Compiled_language"&gt;Compiled&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Imperative_programming"&gt;Imperative&lt;/a&gt; - &lt;a href="https://en.wikipedia.org/wiki/Procedural_programming"&gt;Procedural&lt;/a&gt; and System programming language with manual and deterministic memory management (did you look it up before?). &lt;/p&gt;

&lt;p&gt;I'll skip a few years and languages, cause I guess you have a life and things to do other than reading this, right? &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's move on to ABAP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is an easy one, only one category. As it turns out, &lt;a href="https://en.wikipedia.org/wiki/ABAP"&gt;ABAP&lt;/a&gt; is a &lt;a href="https://en.wikipedia.org/wiki/Fourth-generation_programming_language"&gt;4th Generation language&lt;/a&gt; (4GL). I didn't even know that existed...&lt;/p&gt;

&lt;p&gt;ABAP is the language created and used by &lt;a href="https://en.wikipedia.org/wiki/SAP_SE"&gt;SAP&lt;/a&gt;. The all-mighty says &lt;em&gt;"It is extracted from the base computing languages Java, C, C++ and Python"&lt;/em&gt;, but I would have compared it (at least in the first years) with COBOL... but what do I know... I didn't even like C!&lt;/p&gt;

&lt;p&gt;Do I like it? Well, I didn't dislike it, to be honest. I worked with it for about 20 years, so I guess the answer might be yes. It is the only language I've actually used professionally (other than Ruby), so I don't think I have much criteria to compare. Or maybe I do...? 🤔&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ruby. It's a wrap.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the end this is the language at the origin of this post. If you are a web developer you most likely know &lt;a href="https://en.wikipedia.org/wiki/Ruby_(programming_language)"&gt;Ruby&lt;/a&gt;. If you don't it's never too late. &lt;/p&gt;

&lt;p&gt;Did you know that Ruby is an &lt;a href="https://en.wikipedia.org/wiki/Functional_programming"&gt;Functional&lt;/a&gt; (impure), &lt;a href="https://en.wikipedia.org/wiki/Imperative_programming"&gt;Imperative&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Interpreted_language"&gt;Interpreted&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Object-oriented_programming"&gt;Object-oriented&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Metaprogramming"&gt;Meta-programming&lt;/a&gt; language? Well, know you know.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KTkg4Pc---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mwvmdphro4lkq5ejzbv9.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KTkg4Pc---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/mwvmdphro4lkq5ejzbv9.jpeg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I found learning Ruby was easy. It took a while to get used to the fact that so many things where just so easy to achieve. At the beginning of my training I would develop methods to do simple tasks to later on learn they already existed. Now, I am learning that most of those methods exist thanks to Meta-programming which seems fascinating to me. &lt;/p&gt;

&lt;p&gt;Well, well, well, after all these interesting facts it is now time for me to go back to learning. There's so much to discover! Ups, almost forgot! Check out the &lt;a href="https://en.wikipedia.org/wiki/List_of_programming_languages_by_type"&gt;wikipedia link&lt;/a&gt; that brought me here!&lt;/p&gt;

&lt;p&gt;What are your favourite languages? Any memories worth sharing? We would love to hear about it. Share your thoughts in &lt;a href="https://twitter.com/codegram"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>languages</category>
    </item>
    <item>
      <title>Git is your friend</title>
      <dc:creator>Elena Maroto</dc:creator>
      <pubDate>Wed, 18 Mar 2020 17:31:57 +0000</pubDate>
      <link>https://forem.com/codegram/git-is-your-friend-3c86</link>
      <guid>https://forem.com/codegram/git-is-your-friend-3c86</guid>
      <description>&lt;p&gt;I think we should rename the periods in BG and AG. Before Git and After Git. &lt;/p&gt;

&lt;p&gt;I haven't lived the BG period, as I was not working in web development, but I can only imagine how complicated that must have been.&lt;/p&gt;

&lt;p&gt;It's like when I think about the good old days when the web wasn't everywhere (yes, there was a time...) and we had to go check a book (like, a real one, in paper and stuff, and usually very big) to solve our programming questions. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IW9zDGQg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qihmnfioe9sbv6ec9gph.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IW9zDGQg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qihmnfioe9sbv6ec9gph.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;small&gt;Ah those times... there was something about it...&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;But let's focus on what brings us to this post today. Git. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Starting from the bottom. What is Git?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Git is one of many VCMs (Version Control Managers). And why do you need one of those, you say? Glad you asked. 🤓 &lt;/p&gt;

&lt;p&gt;Imagine this situation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Jenny and Meryl are working on the same project. They are working on different features. Both features use the same table and so the same DB methods. Then Jenny needs to make a change to, lets say, the update method. At the same time Meryl needs to do a different change to the very same method. Both need to happen at the same time, and both are working on the same code, each on their own. So, how do you handle it? How do you ensure none of the changes get lost on deployment? Well, my dear developer, the answer is... 🥁 you've guessed it... by using a Version Control Manager! 🤯&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Situations can get waaaay more complicated than this (imagine several people working on several features at the same time), but for the sake of simplicity, we'll leave it here and move forward. &lt;/p&gt;

&lt;p&gt;Let me introduce you now to your newest friend: Git. 🎉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you know what Git means?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Well, I started looking online hoping for some kind of acronym, you know, like FTP, HTTP, etc. which actually mean something... and well, nope! As it turns out, Git was named like that by Linus Torvalds, who, you've guessed it, is the creator of Linux. &lt;/p&gt;

&lt;p&gt;Git is actually slang for &lt;em&gt;"unpleasant person"&lt;/em&gt; (go figure 🤷🏻‍♀️) and Torvalds would joke about this saying: &lt;em&gt;"I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'Git'."&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
The name "Git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (depending on your way):
&lt;br&gt;- random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of "get" may or may not be relevant.
&lt;br&gt;- stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang.
&lt;br&gt;- "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room.
&lt;br&gt;- "goddamn idiotic truckload of sh*t": when it breaks
&lt;/blockquote&gt;

&lt;p&gt;&lt;small&gt;Extract from &lt;a href="https://en.wikipedia.org/wiki/Git"&gt;Wikipedia's Git page&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's all the fuss about?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Well, if you are a web developer you are most likely using Git... but maybe you don't really know what its benefits are. Sure, there are other version control managers, but Git has become the leader in the last few years, overrunning market leaders like Subversion. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WzCNPMp5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6ae7qo89kybuj56zg9p5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WzCNPMp5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6ae7qo89kybuj56zg9p5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How did this happen? Well, there are a few main differences between Git and other VCMs out there that account for its success:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Git is a distributed system.&lt;/strong&gt; The main benefit being that you can work locally. Other VCMs require for you to be connected to the central repository while working. Git, on the other hand,  allows each contributor to make a copy of the project and work on it on their own machine.  They'll only commit changes to the remote repository every once in a while. Which brings us to the second benefit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's faster to commit.&lt;/strong&gt; For obvious reasons. Since you are committing locally most of the times, commits are faster, no network traffic issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's available offline.&lt;/strong&gt; Which means you can work on your code anytime, anywhere. Connection or not. You can even code while on a plane and use those long flight hours to your code's advantage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;There's no single point of failure.&lt;/strong&gt; Meaning, if the remote repository breaks, you can still work on your own until it gets fixed... and then commit your changes to it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Isn't Git too complicated?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Well, it can feel a bit like a black box at times. The reality is though, that Git is just an addressable file system. Everything we do can be broken down to simple operations, even done by hand (that would be more complicated, but it's still possible). &lt;/p&gt;

&lt;p&gt;Let's now dig just a little deeper, shall we? &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AMUFh4MI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2lllx41ghq9nikyy2uy3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AMUFh4MI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2lllx41ghq9nikyy2uy3.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The basics of the basics&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When working with Git repositories your data goes through 3 different stages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Working directory&lt;/strong&gt; - The root directory of your project. Any additions, changes and deletions of files and directories done here that aren’t tracked, won’t make it into the repository.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Index&lt;/strong&gt; - Also known as “stage”, is where you decide what changes should go into the next commit.   This is what you actually update with the Git add command. Sounds familiar?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repository&lt;/strong&gt; - This is where the actual data goes and all commits, branches, tags and other things are stored.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;And more...&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All of our data, changes and commits are stored as hashes on the file system.&lt;/li&gt;
&lt;li&gt;It is rather hard to lose work with Git. Even if we don't create commits but simply add our changes to the index, Git will already store those changes, making it complicated to lose them.&lt;/li&gt;
&lt;li&gt;With Git, every single change and commit can be addressed separately thanks to the hashes.&lt;/li&gt;
&lt;li&gt;An entire commit history can be restored with a single commit as long as all references are in place.&lt;/li&gt;
&lt;li&gt;Git comes with a built-in garbage collector that will remove any Git object that isn’t reachable by any branch or tag.&lt;/li&gt;
&lt;li&gt;Git offers different merge strategies for different scenarios (e.g. three-way and fast-forward).&lt;/li&gt;
&lt;li&gt;Merges can be undone and cancelled.&lt;/li&gt;
&lt;li&gt;With interactive rebase, Git offers the possibility to reorder, split, squash, delete and choose the commits you want to merge to your main repository.&lt;/li&gt;
&lt;li&gt;Git allows to run a program after a commit has been replayed during a rebase.&lt;/li&gt;
&lt;li&gt;Cherry-picking allows to pick any commit or range of commits in our repository and apply it on top of other commits.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;My personal experience with Git&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I had been using Git in my personal projects and while this is good and useful, it is by joining Codegram, a web development company where Git is widely used, that I really could appreciate its benefits. All of a sudden things like rebase make way more sense, and working in a team make you realize how complicated our lives could be without Git.&lt;/p&gt;

&lt;p&gt;Still hungry for knowledge? You want details? You want commands? You want to play with it? 🤙 I feel you. 👉 Then by all means go get hands on with the book that inspired this post: "&lt;a href="https://rebase-book.com/"&gt;Rebase&lt;/a&gt;" by Pascal Precht.&lt;/p&gt;

&lt;p&gt;Photo by &lt;a href="https://unsplash.com/@krista?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Krista Mangulsone&lt;/a&gt; on &lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt; &lt;/p&gt;

</description>
      <category>git</category>
      <category>versionconrol</category>
      <category>versionmanager</category>
    </item>
    <item>
      <title>Routines for a routineless life</title>
      <dc:creator>Elena Maroto</dc:creator>
      <pubDate>Tue, 11 Feb 2020 12:46:27 +0000</pubDate>
      <link>https://forem.com/codegram/routines-for-a-routineless-life-5093</link>
      <guid>https://forem.com/codegram/routines-for-a-routineless-life-5093</guid>
      <description>&lt;p&gt;All along my working career I have never been able to make it to work twice at the same hour. Ever. In 20 years. That's a lot. Luckily I hadn't had to clock in or out in any of my jobs. I didn't like taking the bus to work either, cause of the fixed schedule. &lt;/p&gt;

&lt;p&gt;Yeah, you've guessed it. &lt;strong&gt;I don't like fixed schedules.&lt;/strong&gt; My brain (as in a separate entity from my own self that I can blame) doesn't like to deal with that. &lt;/p&gt;

&lt;p&gt;Then, about two and a half years ago I quit my big group job. Bootcamp, holidays, everything was ok. &lt;/p&gt;

&lt;p&gt;And then January arrived. No fixed schedule and all the time in my hands to start my own business. &lt;strong&gt;I could do whatever I wanted whenever I wanted.&lt;/strong&gt; Everything was going to be birds chirping and flower smelling. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nAsa2lHS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1eqj65xz1hl9s6x5c74z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nAsa2lHS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1eqj65xz1hl9s6x5c74z.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But you won't guess what happened. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I was lost. My little brain didn't know what to do. I felt unproductive all the time, while feeling that I was working all the time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I also felt guilty for doing things like going grocery shopping on a Tuesday at noon when there's basically no one (cause everyone is at their 9 to 5 jobs). My little brain thought that at that time I should be working... like I'd been doing for the last 20 years!&lt;/p&gt;

&lt;p&gt;How is that possible? &lt;strong&gt;How come I am feeling this way if this is exactly what I wanted?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UcL0duyk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f0mrs47deae46buivrct.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UcL0duyk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/f0mrs47deae46buivrct.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was blocked and felt I needed help. So after a friend's recommendation I worked with a coach. It only took one session to address the issue. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This is a common problem with people who change from a fixed schedule job to a flexible job", he said. "The problem is, you have removed the frame that your brain was used to follow for the last 20 years and now it doesn't know what to do. You need to set a schedule."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm sorry, did you just say a schedule? No, no, no, ain't gonna happen. I hate schedules!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6IDxaurU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ajrahfvllocyubvouw9v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6IDxaurU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ajrahfvllocyubvouw9v.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But I figured, since I was paying him (a lot) to give me advice I should at least give it a try. &lt;/p&gt;

&lt;p&gt;Fast forward a couple of years. &lt;/p&gt;

&lt;p&gt;Now I am working at Codegram. Remote job with flexibility. Perfect! &lt;/p&gt;

&lt;p&gt;In parallel, I am working part time on my own business that I've created during the last 2 years. That, my friend, requires organization... and schedule. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The good part is, it is you who sets the schedule. It is you who decides your working hours. You organize your job around your life and not the other way around.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But still, you need to be very careful to not end up working on the couch in your pj's with your TV on (true story). Cause if you do that, chances are, you are not going to be productive. And you want to be productive, right? &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u6Fc0Qdy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/bhmtl36c2ux9l0bsm3b6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u6Fc0Qdy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/bhmtl36c2ux9l0bsm3b6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So here are a few things I've put in place since I started my full time job at Codegram that have worked for me. I usually work from home, though sometimes I'll go with a friend to a mall where there's good wifi, or go to a coworking, depending on my mood and needs. &lt;/p&gt;

&lt;p&gt;These tips are taken from podcasts, articles on productivity, etc. I did a mix and match, tried and found (so far) what works for me. Hopefully this will help you as well. &lt;/p&gt;

&lt;p&gt;👉&lt;strong&gt;Enter "Routines for a routineless life".&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;I go to bed and wake up at a regular time everyday.&lt;/strong&gt; I am not a morning person, and I like to stay up late, but if you do that, you go somehow against the world. So, a little arrangement here and there helped with that. To my surprise, by keeping the schedule regular, I even wake up somedays before my alarm goes off.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I hit the gym 3 times a week first thing in the morning&lt;/strong&gt;. Another thing I had a hard time sticking to. I read somewhere that you should get the most complicated task over with first thing in the morning, that way, you've won your day. I don't know about the wining your day thing, but for sure this has helped me keep up with my exercise routine... which is a lot to say. The trick? No discussion with my brain. I go to the gym. Period. There's no room for negotiation there.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xy-cA4JE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1hs6vu5mqb8tc6oo8bq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xy-cA4JE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/1hs6vu5mqb8tc6oo8bq9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;I work for 2 hours on my own business.&lt;/strong&gt; On days I don't hit the gym, I work on my business first thing in the morning.&lt;/li&gt;
&lt;li&gt;After that, and only then, &lt;strong&gt;I take my shower and get ready for my Codegram job&lt;/strong&gt;. This might seem stupid, but I get dressed as if I would go to the office. I even put on my earrings (I never go out without earrings, I feel naked without them when I'm not at home... don't ask why, 🤷🏻‍♀️everyone has their weirdnesses...). My business and my job at Codegram have absolutely nothing to do one with the other, so my brain needs sometime to switch between activities and allow full concentration in both of them at their own turn.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;The simple fact of taking a shower at this time and getting dressed to go to work tells my brain that I am switching activities.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;When it comes to lunch, &lt;strong&gt;I usually cook on the weekends&lt;/strong&gt;, normally a couple of simple lunches with several portions, so I don't have to think about it day in and day out. Then I have lunch watching something easy on tv or just looking at the ceiling... basically not thinking about anything... (or that's what I want to make myself believe...).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When my workday ends, I "go home"&lt;/strong&gt;. Meaning, I change my clothes into my cozy, warm stay-at-home-wear... (and take off my earrings!). That tells my brain that my working day is finished.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I keep track of my worked time&lt;/strong&gt;. Not that it is a requirement at Codegram, but I want to make sure I don't go way overtime, which is very easy when working at home. I use &lt;a href="http://toggl.com/"&gt;toggl.com&lt;/a&gt; for that.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I have different working spaces for my two different activities&lt;/strong&gt;.  For my own business I work on the island counter in my kitchen (don't worry, it is comfortable). For Codegram I work in my office (which is set up in my guests room).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is also valid if you have only one activity. Having a distinct, separate workspace helps your brain separate between work and personal life. &lt;/p&gt;

&lt;p&gt;This is all in all what has worked for me so far. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Surprisingly, and much to my little brains regret, I feel much calmer having a schedule and sticking to it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Still, I allow myself for some flexibility when needed (grocery shopping, doctors appointment, lunch with friends...), that's the beauty of a remote, flexible job, isn't it? &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lMCdMlJC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o0e9244hvw0ymc5rrjyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lMCdMlJC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o0e9244hvw0ymc5rrjyd.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What works for you? Tell us on &lt;a href="https://twitter.com/codegram"&gt;twitter&lt;/a&gt;. And follow us, while your at it!&lt;/p&gt;

</description>
      <category>remote</category>
      <category>flexiblejob</category>
      <category>routines</category>
    </item>
    <item>
      <title>DevOps for Juniors... by a Junior</title>
      <dc:creator>Elena Maroto</dc:creator>
      <pubDate>Fri, 17 Jan 2020 19:00:00 +0000</pubDate>
      <link>https://forem.com/codegram/devops-for-juniors-by-a-junior-3jdl</link>
      <guid>https://forem.com/codegram/devops-for-juniors-by-a-junior-3jdl</guid>
      <description>&lt;p&gt;So you just landed your first Junior Web Development job. Yay!&lt;/p&gt;

&lt;p&gt;Say you joined Codegram. Double Yay!&lt;/p&gt;

&lt;p&gt;And you start the onboarding process. 😱&lt;/p&gt;

&lt;p&gt;Everything is very well explained, the tone is friendly and nice, step by step, everything is going smoothly... and then you make it to the technologies part.&lt;/p&gt;

&lt;p&gt;Wait, what???&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Z568t2b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/my-eyes.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Z568t2b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/my-eyes.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are a junior 🐣. A tiny little web-baby that just came out of her tiny little web-crib and started to make her first tiny little web-steps. In your web development bootcamp you used what? 5, 7, 10 different technologies? And at Codegram we use like, how many? A thousand??? (exaggeration alert❗️).&lt;/p&gt;

&lt;p&gt;Ok, let’s stay calm 🧘🏻‍♀️. So I know about &lt;strong&gt;frameworks&lt;/strong&gt; (more or less), &lt;strong&gt;languages&lt;/strong&gt; (more or less), &lt;strong&gt;databases&lt;/strong&gt; (yes, I know what a DB is… does that count?), &lt;strong&gt;frontend&lt;/strong&gt; , &lt;strong&gt;backend&lt;/strong&gt; , &lt;strong&gt;API&lt;/strong&gt; … I can deal with that. But what about the &lt;strong&gt;systems&lt;/strong&gt; part? How does it work? Mmmm, I feel like deepening a little bit into &lt;strong&gt;DevOps&lt;/strong&gt; today.&lt;/p&gt;

&lt;p&gt;I’m not really a DevOps person, but I want to have an overview beginning to end of what and how is happening, otherwise my brain goes like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fhG0w90c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/brain.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fhG0w90c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/brain.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, let's start. I’ll filter by “Systems”: Heroku, Docker, Kubernetes, AWS.&lt;/p&gt;

&lt;p&gt;Oooooook now. 🤔&lt;/p&gt;

&lt;p&gt;I know what &lt;strong&gt;Heroku&lt;/strong&gt; is, right? - &lt;em&gt;“Heroku is a cloud service provider and software development platform which &lt;strong&gt;facilitates fast and effective building, deploying and scaling of web applications&lt;/strong&gt;. It has 140 inbuilt add-ons, ranging from alerts to analytic tool security services which are used for purposes like monitoring, caching and mailing or networking add-ons.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Crystal clear. &lt;strong&gt;Basically&lt;/strong&gt; it's where I’ll deploy my application, &lt;strong&gt;my server in the cloud&lt;/strong&gt;. So no need to care for physical servers and operations. &lt;strong&gt;Heroku is easy to use&lt;/strong&gt;. This is the basics of the basics of deployments.&lt;/p&gt;

&lt;p&gt;Aaaaaand here is where my DevOps knowledge ends! 🤷🏻‍♀️ Moving forward...&lt;/p&gt;

&lt;p&gt;Hey &lt;strong&gt;Docker&lt;/strong&gt;! What do you do in life? - &lt;em&gt;“Docker is a tool designed to make it easier to create, deploy, and &lt;strong&gt;run applications by using containers&lt;/strong&gt;. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one package. This allows for the application to work more efficiently in a different environment.“&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cqiilLCD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/docker.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cqiilLCD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/docker.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;small&gt;Love the (mad) Linux penguin!&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;So, &lt;strong&gt;for juniors now&lt;/strong&gt;. With Docker basically I’ll get my application, create a package with everything and then manage and ship everything as a whole. But where? Well, I could ship the docker containers to Heroku… but not only.&lt;/p&gt;

&lt;p&gt;Meet &lt;strong&gt;Kubernetes&lt;/strong&gt;! - &lt;em&gt;“Kubernetes provides you with a framework to run distributed systems resiliently. It takes care of scaling and failover for your containerized application, provides deployment patterns, and more.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“In other words, &lt;strong&gt;Kubernetes is a container orchestration platform&lt;/strong&gt;.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Kubernetes can run without Docker and Docker can function without Kubernetes. But Kubernetes can (and does) benefit greatly from Docker and vice versa.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Junior translation&lt;/strong&gt;. You have your application, that you’ll package in Docker containers. You can run and test your application locally with Docker. Then you ship your containers to Kubernetes. Kubernetes takes care that your application is running all the time with load balancing and all. Easy right?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bNxJp4dj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/everything-makes-sense.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bNxJp4dj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/everything-makes-sense.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And what about AWS???&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ok, so, without surprise, AWS is like &lt;strong&gt;the God of the Cloud Services&lt;/strong&gt;. &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i57PuU_0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/public-cloud-market.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i57PuU_0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/public-cloud-market.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want virtual servers in the cloud? AWS EC2. Want to deploy code without thinking about servers? AWS Lambda. Want to deploy Docker containers? Yep, that too. AWS ECS. Blockchain, NoSQL Databases, IoT, Machine Learning, you name it.&lt;/p&gt;

&lt;p&gt;So, when should you use what you may ask? Well, sorry to disappoint you… I am just a junior dev…&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---pQRpHJ5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/sorry-cant-help.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---pQRpHJ5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.codegram.com/blog/devops-for-juniors/sorry-cant-help.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Good news is, you can check with my senior colleagues at Codegram! Throw us a line at &lt;strong&gt;&lt;a href="//mailto:hello@codegram.com"&gt;hello@codegram.com&lt;/a&gt;&lt;/strong&gt; and we'll be glad to help you!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
