Skip to content
Avatar
👨‍💻
probably writing tests
👨‍💻
probably writing tests
Block or Report

Block or report gabrielfalcao

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
gabrielfalcao/README.md

Hi! I'm Gabriel Falcão

I heard some time that Hemmingway said "Write drunk, edit sober" or something like that.

Well, thread carefully because this very page hasn't been edited for sure!

My history as a computer programmer

I am a brazilian software engineer. I started coding around age 12 at a moment in time where I did not have a videogame. Instead I had a black-and-white monitor and which I my dad and I used for setting up new machines that we assembled from scratch. I was 9 when I started working with computers to help my family make a some extra money.

Anyhoo, I did not have a videogame and no real graphics card so I was pretty bored when I instinctively started digging around the features of the operating system I had in hands: Windows 9... something or perhaps was Windows ME. I really don't remember for sure.

What I sort of remember is that because I could not see colors I started building stuff. I'm a creative person, a very sensitive human that had the privilege of growing up with a lot of love rather than a lot of money.

I feel like mind is wildly curious, dare I say indomitable (Though I don't have a lot of confidence of my english or at least people have doubted my abilities in the past but at the current times I am certainly recognized or so it seams).

But I digress (again, sorry) - what I mean to say is that I always loved learning and I grew up with a great sense of love and justice which I definitely have taken for granted sometimes but the very act of writing this is one that attempts to serve as a reminder for myself that LOVE is the greatest thing and I shall never forget to cherrish it again.

Using my monochromatic monitor I was left with few options of how to play with my computer so I got curious about the software in which most people rarely found interest in: Microsoft Access 97 (Now that I think about it, I was probably using windows 95 or 98. I guess.)

I liked to play with paintbrush when I had a colored monitor, making random scratches then cutting, copying, pasting, flipping horizontally or vertically and/or rotating it in an intuitive attempts to create visually appealing and geometrically sound figures. (I seem to be attracted to multi-dimensionality)

But I always wondered what was beneath the surface of the user-interface. More precisely little 9 year old mind wondered: "How programs are made?"

Instead of painting mere pictures I wanted to learn how to design software, as it were. So while digging around the Microsoft Office 97 suite, bored with a monochromatic monitor, I opened MS Access and found a little feature called "Forms" (in portuguese I think it was translated to Formulários).

Anyway, the thing is that it presented me with a similar interface as that of MS Paint, except that instead of a brush, bucket of paint, pens, pencils, erasers or clipboard-specific tools like magic wands MS Access 97 gave me a window rather than a canvas - comparatively to MS Paint - and the tools were button, text boxes, radio boxes, check boxes and so on.

Once I dragged-and-dropped a button, say, on the empty window canvas and double-clicked it, a new interface would appear overimposed with code that clearly referenced whatever UI element had been drawn.

My mind was blown - good job Microsoft for blowing my mind at 12 years old.

But I was sort of stunned because I didn't know what to write, it's as if as a child I was already wrestling with a blank page, except that it begged to write code beneath the canvas.

The coolest thing is that there was a feature called "Form Wizard" where it presented sort of templates - cookie cutter style I suppose - where it guided me through visually attaching actions to UI elements.

As a 9 year old my job was to teach adults how to use a computer. I could feel how older people felt intimidated by the technology but I was always rather inspired by it. So I told them something along the lines of: Let me show you the basics - here is how you make a business card, or a banner or a gift card. Here is how you paint, wanna play solitarie? Here you go. Lots of people seemed to like landmines, I always thought it was super boring. But hey, who was I to judge?! I was just a boy. (In my mind I still feel like one).

The adults I was teaching seemed to take notes, I thought it was weird because it was so intuitive to me - little did I know that I had several hours of deliberate practice (though I didn't know this concept at the time)

So when Microsoft Access provided me with a simple way to attach actions to UI elements I felt the thought coming: "Eureka! Instead of guiding people through the operating system UI I created a my own UI with lots of buttons, grouped by kinds or sorts of categories such as "games" or "entertainment" or "utilities".

I made sure to help people find their way with as little trouble as possible - which in retrospect I think was an act of compassion.

When I double-clicked the generated buttons that executed other programs it would show me the code that was generated.

If memory serves, I think that the code was a sort of dialect of Visual Basic 5 or 6 - based in english, obviously. So in a way I learned english backwards, because I would read code and try to make sense of it. I was pretty bored at school because trying to decypher generated code gave me an intense feeling of reward - one could dare to call it dopamine dispensing.

I would spend several hours looking at the code and trying to make sense of it, I remember that at the beginning I spent several days trying to make sense of the code generated by a single button.

Because I learned backwards and having no access to books - especially not in portuguese - I didn't know the concept of a variable, but instinct told me I needed to store value somewhere, so I would draw text boxes on the UI, set their "visible" property to "false" and in the code I would store text in those hidden boxes.

Eventually I learned that it was counter-intuitive and that I could simply declare a "variable" which was much more efficient and generally better because variables could be typed and so instead of just strings I could play with numbers though I have no real mathematical skills (I was day-dreaming of coding during classes)

I intend to try and run Visual Basic 6 in Windows ME within a virtual machine and record a screencast to go down memory lane in an effort to share my way of thinking.

If you're interested in that sort of thing or the rest of my story or simply want to support me in grattitude for open-source projects or whatever, please consider donating to my Patreon or Ko-Fi.

I have also been thinking of streaming live-coding sessions on YouTube or Twitch, so if you're interested please consider donating.

See you later, Aligator!

Pinned

  1. sure Public

    idiomatic assertion toolkit with human-friendly failure messages, inspired by RSpec Expectations and should.js

    Python 677 70

  2. HTTPretty Public

    Intercept HTTP requests at the Python socket level. Fakes the whole socket module

    Python 2k 264

  3. lettuce Public

    Behavior-driven-development tool for python, inspired by Cucumber for Ruby

    Python 1.3k 330

  4. chemist Public

    Simple, flexible and testable active-record powered by SQLAlchemy - supports seamless encryption of fields through PyNaCL

    Python 4 2

  5. agentzero Public

    Python ZeroMQ for Humans

    Python 8 1

  6. Enables pyenv within your github actions workflow

    TypeScript 21 11

898 contributions in the last year

Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Mon Wed Fri

Contribution activity

November 2022

Created 2 repositories
57 contributions in private repositories Nov 1 – Nov 27

Seeing something unexpected? Take a look at the GitHub profile guide.