Computers Programming

The Pragmatic Programmer

This is just a short post about the best Christmas present I have gotten (I know it’s a bit late to talk about Christmas -that or incredibly early).

A really great friend gave me this book called “The Pragmatic Programmer: From Journeyman to Master”, by Andrew Hunt and David Thomas and it has been my salvation.

I think any developer should read this book at least once. It’s a book that is not technical, it’s not going to make you better at [insert programming language here], but it is going to make you a better programmer.  Even if you’re just someone working with people who write code, you should give it a quick read. It talks about a lot of common problems in the industry and ultimately empowers you to become better at what you do.

I’m not even sure anyone is reading this, but I’ll pretend someone is. If you’re that someone: thank you, you’re awesome. Now go and get reading.

Have a great week!


Computers Life Stories Programming

Quality vs Quantity: How Fast Should a Developer Work?

[et_pb_section bb_built=”1″][et_pb_row][et_pb_column type=”4_4″][et_pb_text _builder_version=”3.0.92″ background_layout=”light”]

back when I was interviewing for my current job, I said I couldn’t promise speed in my coding, but I promised to do my best and to learn fast. Lately, I have been feeling a lot of pressure to perform faster.

The project I’ve been assigned to is simple: I need to build templates for future web tools. They should be good enough to modify and easy to understand. Most of them are based on already existing tools. It’s an easy job, right?

Except for the fact that the tools I need to modify could be improved upon. They’re good tools, but I feel that I could try to make them more concise and easier to modify. I’m a newbie and I don’t know all the details on how to make my code as efficient as possible, but I want to leave something that is neat and easy to understand. The kind of code you hardly need to use the inspector mode to change, because it’s all in the code. But as I take my time to perfect the code and leave comments, the clock keeps on ticking. I should be done with most of my assignments already, but I’m lagging behind.

Of course, I could always just grab the old tools and modify them fast enough to make them *look* right, even if the code is a mess (because let’s face it, I don’t have  the skills to work both fast AND not use a bunch of dirty hacks in the process). I doubt my superiors would care, and my colleagues would definitively understand. I want to perform well, I want this first job as a developer to go well. I don’t want to disappoint anyone. If I just gave up my need to make the code better, I could do this job a lot faster and nobody would fault me for it — except for one person. I would be disappointed in myself.

Sure, I want to be a developer. I want to code for a living. I believe I am at the right place right now. That’s exactly why I don’t want to compromise. I’m not a complete perfectionist, it’s not that I want perfection. With the little knowledge I have, perfection is an unattainable dream at this moment. I just want to be able to write code in the way that anyone can understand what’s happening. I’m new and inexperienced and I’m slow, but I want to do the right thing. I’m afraid thinking this way may cost me my job, if you’re not fast enough, then you’re being inefficient. I know that. I’m not sure if I’m doing the right thing. I wonder if future Claw will look back at me and think “why are you so stubborn, stupid?”. There’s so much to do and I only get two days a week to do it.

I’ve decided to be slow. I’m too new to do a perfect job, and I’ll work as fast as I can without compromising the quality standards I’ve set for myself. I’ll be as neat if possible. If things take a turn for the worse, I guess I’ll deal with things then. I won’t let my fears win against me. I want to be a good coder.


Computers Programming

Coding: How to Start

[et_pb_section bb_built=”1″][et_pb_row][et_pb_column type=”4_4″][et_pb_text admin_label=”intro” _builder_version=”3.0.90″ background_layout=”light” text_font=”Work Sans||||||||” text_font_size=”16px” header_font=”Dancing Script||||||||” saved_tabs=”all”]

Last week I talked about how I got started with coding. This week I want to talk about how to get started.

This is going to be a very simple general guide without any technical aspects and it assumes you have never coded before. In fact, you can take this as a “letter to my past self” kind of post. I will talk about why you should want to learn how to program, what you need to start learning and a small Do’s and Don’ts section with information that has been passed down to me from some of my mentors. So without further ado, let’s start:

[/et_pb_text][et_pb_text admin_label=”why should I learn to Code” _builder_version=”3.0.90″ background_layout=”light” text_font=”Work Sans||||||||” text_font_size=”16px” header_font=”Dancing Script||||||||” saved_tabs=”all”]

Why Should I Learn how to Code?

Someone who works in the industry may give you an answer along the lines of “because computers are the future and people who program will always have jobs, while people who don’t will eventually be sold as slaves to our machine overlords!”– followed by maniacal laughter. There’s also the people who will tell you about how programmers earn better, blah, blah, blah.

Here’s what I think: you should learn how to program because it’s fun. You may not make a career out of it or earn a lot of money with it, but there’s nothing quite like being able to tell computers what to do. The first time you create a program is magical and your enthusiasm is inversely proportional to the excitement of everyone around you. There’s something intrinsically fun about this ‘Eureka’ feeling, while everyone else just stares at you wondering if you’ve finally lost all your marbles. Just give it a try.

Programming is not fun for everyone, however. If you think it’s not your cup of tea, that’s fine. Just don’t let your fears be the force that stops you. I let my fears of calculus get the better of me for years. I would look at my IT friends and watch them struggle and I would fear it was too difficult for someone like me. Here are two secrets about programming:

  1. There is always a struggle and you will get stuck. As an outsider, it looks like suffering. As someone doing the actual work it feels more like a race or a sports competition. It’s the same kind of struggle you will experience from trying to solve a puzzle or running 5k.
  2. Programming can be as hard or as simple as you want it to be. Do you want to use all of your mathematical prowess? There’s data science and C++, do you just want things to look pretty? HTML and CSS got your back. In general, though, it is easier than it looks. I’m not going to deny that it can’t be hard, but it is humanly possible to learn how to do this.

[/et_pb_text][et_pb_text admin_label=”what do I need to code” _builder_version=”3.0.90″ background_layout=”light” text_font=”Work Sans||||||||” text_font_size=”16px” header_font=”Dancing Script||||||||” saved_tabs=”all”]

What do I Need to Code?

Now that I’ve convinced you to start coding, here’s the list of the things you will need to get started. Are you ready? Take note:

  1. A computer. It doesn’t even have to be new. It can be 8 or 10 years old, that’s alright. You’re here to learn. This is what you need to learn.
  2. One of these two: books about programming or the internet. I recommend the later, just because the sources are a bit fresher and it’s probably cheaper.
  3. A text editor. Most computers come with one pre-installed, but it’s nice to have one that feels comfortable.
  4. Enthusiasm. This is the most important item on the list.

That’s all you need to get started.

Because I want you to succeed, here’s a couple more tips: I’m not sure about what language you want to learn. You can test out a bunch of them or you may already have one language in mind. There are books for every language you can imagine and online courses about a bunch more. It would be impossible for me to list all that there is out there, so I’ll point you in the direction of codecademy and tell you there’s plenty of free online courses online, so go find them (there might even be a few hints in my previous post).

About the text editor. Most people confuse text editors with programs like Word or Libre Writer. What you actually need is a text editor that doesn’t have any kind of fonts or formatting done to them. Most programs that deal with written text have ready-set styles and formatting options that you as the user cannot turn off. That’s why you need a special program where you can write without adding any extra information on your files. Basically, you need something more simple than what you’re used to working with. Don’t be afraid!

Incidentally, the Django Girls Tutorial has a nice section on free editors you may use and a bit more of an in-depth explanation: here’s the link.


[/et_pb_text][et_pb_text admin_label=”do’s and don’ts” _builder_version=”3.0.90″ background_layout=”light” text_font=”Work Sans||||||||” text_font_size=”16px” header_font=”Dancing Script||||||||” saved_tabs=”all”]

Do’s and Dont’s

Here’s a very simple list of things I wish I had known when I started.


  • Learn how to code from your code editor. pages like codecademy are great in that you can do everything online, but the downside is that you then have a feeling of disconnection between what you do on their website and what you can do on your own computer. Explore the possibility of using the command line to run small programs on your own computer. It makes a huge difference. MOOCs (massive open online courses) from the University of Michigan are great when it comes to this.
  • Code a little every day. It doesn’t matter if it’s just for ten minutes. Programming is a muscle that you need to exercise.
  • Make comments in your code often. Explain everything. Your future self will thank you.
  • Remember that the difference between the master and the apprentice is that the master has failed more times than the apprentice has tried.
  • Google everything. Stack Overflow is your friend. Google all the errors you get, understand them, embrace them.
  • Take breaks when you are stuck.


  • Utilize colors in your first few apps if you don’t know much about color theory. Sometimes, monochrome is a lot more simple and it looks good.
  • Repeat yourself. If you are doing something over and over again, create a function or a loop that can help you.
  • Copy-paste the code you are learning. Try to type and savor everything that you are doing. If you copy and paste all the commands, you will have a hard time remembering what you did last time you were at this point.
  • Try to memorize everything. Just look it up. Eventually, you will learn how to do things, but it’s more important to understand how things work rather than just memorizing the words.
  • Worry about bugs in your program. Even the most experienced programmers have to deal with bugs.
  • Be scared of the command line. It’s not too hard to learn a few commands, and you can customize it to look whichever way you want. Besides, it feels super awesome to do things from the command line!


[/et_pb_text][et_pb_text admin_label=”conclusion” _builder_version=”3.0.90″ background_layout=”light” text_font=”Work Sans||||||||” text_font_size=”16px” header_font=”Dancing Script||||||||” saved_tabs=”all”]

All in all, I hope I have convinced you that learning how to code is something fun that you don’t necessarily have to do for profit, but for the sake of it. As you can see, learning how to code is something that you can do for very cheap or even for free and it’s not that difficult to get started. I think I managed to give you some tips and tricks without using too much computer lingo, but if there’s anything you don’t understand, feel free to leave a comment so I can correct that.

Have a great week,


Computers Life Stories Programming

Is two years too long to become a web developer?

[et_pb_section bb_built=”1″ _builder_version=”3.0.47″][et_pb_row _builder_version=”3.0.47″ background_size=”initial” background_position=”top_left” background_repeat=”repeat”][et_pb_column type=”4_4″][et_pb_text _builder_version=”3.0.90″ text_font=”Work Sans||||||||” text_font_size=”16px”]

I first learned that you could become a developer without formal education in that particular field when I met a good friend who is a Swift developer.

At the time, I was struggling with the demands of society to finish my masters in English literature. I had started -and failed at- holding a normal desk job, and I was terrified of the prospect of working in an office setting (thanks to some drama and bullying I had experienced in the aforementioned desk job). I was working as an assistant teacher for children with special needs, and although it was a very fulfilling job, it was a tough job, and I felt culturally alienated from everyone I worked with. Mind you, they were nice people, and I liked most of them, but I felt as out of place as a circle in a group of triangles and squares.


[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”3.0.47″ background_size=”initial” background_position=”top_left” background_repeat=”repeat”][et_pb_column type=”2_3″][et_pb_text admin_label=”Text-2″ _builder_version=”3.0.90″ text_font=”Work Sans||||||||” text_font_size=”16px”]

My developer friends, however told me that there was a whole world out there and that it would be pretty cool if I could explore it.  they said I could totally teach myself how to do this coding thing, even if it was just for myself. This was at the end of 2015.

I was not a complete computer noob, but I was pretty close to that. I had done a few Codecademy tutorials in markup language, but there were two things that happened that year that changed my life:

The Free Code Camp is this amazing website that helps you get better at javascript and other web technologies. It’s often better to pair it up with other resources but it gave me a good curriculum to work through by myself.

The Django Girls is this one-day event where they teach a bunch of women about how web development works and all the best practices. their tutorial is one of the best Django tutorials (and one of the best tutorials-period), I have ever encountered. In my case, my acceptance to this particular Django Girls led to earning a ticket to the biggest python conference in Spain.

[/et_pb_text][/et_pb_column][et_pb_column type=”1_3″][et_pb_image admin_label=”Skip Beat ‘Box R’ reference ” src=”” _builder_version=”3.0.90″]
[/et_pb_image][/et_pb_column][/et_pb_row][et_pb_row _builder_version=”3.0.47″ background_size=”initial” background_position=”top_left” background_repeat=”repeat”][et_pb_column type=”4_4″][et_pb_text admin_label=”Text-3″ _builder_version=”3.0.90″ text_font=”Work Sans||||||||” text_font_size=”16px” background_layout=”light”]

There I was, teaching myself and meeting people and feeling like everything was way over my head. People would ask things like “are you planning on learning as a hobby? Or will you make it a career?” and to be quite honest, that first year, I didn’t know.  I was so close to getting that masters degree it felt like a waste of time and money not to finish. I only needed one thing: the thesis and that was it. Also, working in an office was a scary thought. It meant having to deal with my demons and that scary voice in my head that tells me “I’m not good enough!”.

Time passed and soon it was already one year after I started learning how to code, and nothing much had changed in my life. A couple of weeks ago, I went to a MeetUp and talked to a woman who was very surprised that it took me that long from the moment I started to the moment I got my first job.

What can I say? I guess it was difficult to make the decision to throw away everything I had built up until then. Some people start with computational linguistics, or mathematics or some sort of engineering. I think that kind of background makes for an easy transition. As an English literature major, I remember going to a talk from the university about employability and prospects and having a university representative say “well, if you had wanted to get a job, you wouldn’t have studied what you did”. That was it, that was all I knew. It’s hard to think you’re worth something after being the butt of the joke for so long.

So then my second year rolled around and I decided to focus on this coding thing and a second issue showed up: what language to learn? There were so many languages. I had experience enough to know most people tell you to stick to one language and go for it. Some others ask you “what do you want to accomplish? Use the language you need to get your idea working”. I have issues with both these pieces of advice:

First, if you focus on the first shiny thing that comes across, you might end up learning a lot about that one shiny thing, but then you’ll get into this annoying mentality of “I have a hammer, and I will hammer everything in sight”. You see, different computer languages have different strengths and weaknesses. I know many people who have that one thing they know, and they know it very well, but can’t really understand anything else. I don’t particularly think it’s wrong to be a specialist per se, but I think it’s a bit shortsighted to ignore everything else in favor of the one thing you know. Sometimes you need one type of app, sometimes you need a different type. Learning about languages and how they can work together gives you a bigger toolbox than just a single hammer.

Second, if you already have a product in mind, I think it’s great to think about a language that will help you accomplish that. However, if you just want to learn how to code and don’t have any idea of where to start, it’s a bit scary to think about a project. I mean, you could potentially want to build the next facebook for cats, but somehow get stuck at the part where you’re supposed to add the meow-recognition login page. How much is too much to tackle? Are you good enough at assessing how good your skills are? Are you confident you can find all the information you want online? And once you find your answers in Stack Overflow, will you even be able to understand it? But hey, if you have the idea and the drive, I think it’s okay to go for it. My one advice would be to start small, with the stuff you know how to do, and then go deeper into small aspects you can tackle and so on.

What did I do instead of those two things? I allowed myself to have some time to go over everything I could get my hands on: Python, Ruby, JS, PHP, Java, HTML, CSS, Bash. I did a course on Linux administration, then Python, then JS and if you ask me if it was messy, yes, it was. I didn’t learn very deeply about any of those technologies but I started seeing patterns and learning about things I liked in languages, and things I didn’t like in languages. All the while, I kept going to MeetUps and helping out with events until I finally understood some of the lingoes a bit better. I discovered I liked Python as a language. I like how readable it is. I like learning about accessibility and clean code. My code might still leave a lot to be desired, but I could work in that direction.

Some people decide what language they want to learn based on which language is more in demand or what will give you a job. I’m an English major. Any developer language would give me more job opportunities than my whole life of academic endeavor. So I picked something I loved: Python and I started learning.

What happens next is not exactly what you are imagining right now. First, six months after I had started taking this coding thing seriously, I met some people who had set up a coding bootcamp for refugees. It’s called Re/start, and you should check it out. They’re lovely people. I am glad that I decided to participate with them. I learned a lot there. Personal circumstances made me unable to finish the whole curriculum, but those three months were a good investment.

After a month of code-induced burnout (studying 80 hours a week is not for the faint of heart), I decided to reach out and jump back on that horse. I also decided to start seriously applying for jobs. It just so happens that a friend of mine recommended me to do an internship type of thing at the company where he works and that’s where I am right now.

It took me two years. Most people will think it’s too long. I think that -without counting the time I was unsure about whether I should do this for real- I could say it took me half a year, that would sound better in this world where faster is always the way to go. But that would be discrediting all the personal growth I’ve done in between. I still have a long way to go, but at least I know where I’m standing.


Computers Life Stories Programming

One Push Per Day

It will be two years ago since I started dabbling in programming.

Here’s the next step: I am hoping to start doing more with my Github and I want to build a portfolio, so starting today I am going to do at least one push commit to Github. Wish me luck!

So here’s the plan: First, I’m going to recreate the Django Girls tutorial, so I have it fresh in my mind when I go as a coach in 14 days. Then, I’m going to be doing some other project-based Python and Django tutorials. I’ll also be following some other non-project base python tutorials on the side (to refresh my memory when it comes to the theory).

If I can get things right, I’ll probably be streaming the whole thing, just for fun and giggles, but feel free to drop by and say hi. I’ll be posting the streaming times in a future post.

So, what do you think of the plan?

Enjoy the weekend,