Open-source contributions. It is good enough.

Ever since I finished my Outreachy Internship, I have been contributing to several open-source projects here and there.  Even so, whenever I was asked on if I am currently contributing to any open-source project I often said no. I said no not because I wanted to be dishonest, but because at that specific point I felt what I contributed was insignificant. Can you imagine?

open-source code on laptop screen

I decided to reflect my contributions in a reverse motion and think of how far I have come in this past year.

An open-source  journey

 

Add Authentication (user accounts) with Devise

As I was doing the rail girls training in the first Rail Girls Athens workshop I noticed a link on the manual is not working. My initial gut action was, report the bug! Then I thought… “Wait, I know how to contribute to open source and I know how to fix it. How about I try to do so.”
This is an interesting way to contribute, finding something buggy while you are using something and realizing it might be something you can fix, then going ahead to fix it and see how it goes.

–  Added List Delete Example

I applied to attend the first local Django girl workshop in Athens. I did not get selected however I did not let that stop me from doing the tutorial, I did it myself then found a piece in the tutorial that I thought would be better explained with some examples. So I decided to contribute to it.
Improving already existing projects is cool too.

Swag I got from participating in hacktoberfest 2015 an open-source initiation.
Swag I got from participating in hacktoberfest 2015.

– Learn X in Y minutes : Fixing some typos sample contribution

Last year I wanted to take part in Hacktoberfest, I was trying to find ways to get started. I notice the Learn X in Y minutes had some documentation in Greek language however, there were a few typos. I decided to fix several of them. Do you know a unique language? Maybe you can help an open-source project in close captioning, documentation, or translation.

– Adding Consistency: Hugo

Sometimes contributing is not overly complicated, things such as adding consistency to a documentation can be very beneficial as it makes it easier to read.

Read more

Talk Coaching: Few Lessons to Keep in Mind

Black Microphone Before a Talk

Few weeks ago I was provided with the opportunity to do a 1-1 professional talk coaching session, as part of Mozilla Tech Speakers training. Since such opportunities do not come as often, I decided to share the experience with you all, so that you can get the chance to gain some valuable knowledge like I did. This way, we all get an equal opportunity to learn, and improve. Now let us go right to the gist, below I will post my takeaways in a random order.

Lessons on Giving a Talk

When you are giving a talk, speaking to people, you want them to feel who you are, and know you a little.

Before going out to the stage or wherever you are going to speak at, ask yourself, “What is it that I love about this group of people today?” When you ask yourself this question it will give you a sense of motivation that will make you speak with more passion to your audience.

What they hear and do after your talk is what matters. When you give a talk, also try to see it as a learning opportunity for you. Ask yourself “How can I use this opportunity to learn more about my topic?”. You need to find the way to bring out your best self.

Now about keeping your audience engaged….Everything you do or say should be for them.

Mystery is a good motivator to keep people. Hold back info, build it up…then reveal.

Questions are powerful, however, one caveat of it is that, if you ask the wrong question, you might lose credibility.

Read more

Algorithms & Data Structures: My Journey.

journey path of algorithms

Some years back I had a dilemma that led me to never study algorithms and data structures as a computer engineering student. I am the type of student that always goes above and beyond. One thing that I did during my studies is take courses that were 1 year ahead of my class. For example, if I was a Freshman (1st year), I would register in classes from the Sophomore year (2nd year) with any remaining credits (my university system is one of which you are given a fixed amount of credits for each semester, but passing courses ahead of time made me have an excess). I reached a place where one of the courses I passed was removed from the curriculum so the next year, which was the year on which I was originally supposed to take it, I was eligible to swap its grade for a future course. Due to my inexperience with being in university or studying computer engineering, I had little to no experience on which was the best course to switch my grade with. My background was science oriented, biology, chemistry, you name it. My experience with computer science was very minimal, hence my knowledge of it was lacking foundations. I had no advisor, so I resorted to asking people, in specific classmates in the same or an older year than me, however, I never thought of asking any professor. In my naive brain I thought that a student is more likely to know the answer based on rumors from other students or if they have done the course before. That sometimes holds true but not all the time.  After asking around I was advised to assign that passing grades to “Algorithms and Data Structures” because that course was hard, and even the ones that did pass it say they barely understood what was going on in that course. I strongly remember that there were 2 students out of the several I asked that told me it is a fundamental course to take. I did not take that word seriously, I did not understand why it is fundamental, I looked it up a bit online but I still did not understand what it was about. I decided to go by the advises of the party of opinions that were the most resounding. I assigned that not-so-awesome grade to algorithms and data structures and after that day I was not eligible to join the lab classes of it anymore because on paper I had already passed it.

Years after I tried to look for internship openings, and I realized that…software engineering internships which was what I wanted to try were asking for “algorithms and data structures” as one of their requirements. Later, I learned that, that is one of the fundamental coding interview must-know in order to become a software engineer or ace the challenging coding interviews. For top companies it seemed to me that no matter how intelligent or smart I was, all that mattered was how much I possessed that hard technical skill. That was depressing. Right there the dream of being a software engineer started to fade. I once more went online and tried to ask the search engines to show me the way. Show me the way to learn this skill! I did get an answer, but not the answer I wanted. I read some books, checked out series of recommendations on the right and best book to read for this subject but it looked so complicated. It looked very confusing, after a point these resources hardly made any sense and I will call it quits for several months, try again, temporarily quit, and repeat; I struggled.

I developed a phobia on data structures and algorithms, one that told me that it is so hard, and I would not be able to learn it. Eventually, I felt that the tech industry does not have a place for me. I felt that I needed to have known what code is at the age of 6 so by my early 20s I would have the necessary coding experience needed to do well in a coding interview. Life doesn’t go back and by the age of 6 or 12, I had no computer anyway.

 

The Turning Point

Over the months I changed my focus on being able to build some skills on other areas I was lacking. Several things happen till It lead me to decide to learn it again. It happens that I had the wrong goals in mind. I wanted to learn algorithms to do well in a coding interview to get a software engineering internship at an awesome company, when instead I should be learning it because it is a skill worth knowing and it is something that is bound to make my brain think smarter.

This time I was fortunate to get to know a wonderful person who is there for me in this journey of learning. That is very comforting. You can also join us in this journey of learning, a never ending cycle, having in mind that we are walking the same steps together in asynchronous times and paces.

I want you to join me in this journey. If you are struggling to learn this very important fundamental knowledge feel free to follow me in this path. This is a skill you can learn, and you need to start believing you can. That is the first step and that is how I am starting myself.

Task 1: Believe you can learn it. It might take hard work, but believe you can.

Read more

My MozFest UK 2015 Experience

My MozFest UK 2015 Experience

Few weeks ago I attended MozFest (Mozilla Festival) UK. I had an awesome time for the most part. I really liked London. I liked how multicultural it was, and how a lot of people at MozFest were so nice.

This was my first time traveling out of Greece. Yup my first time. I thought traveling would be scarier than what it actually was. I enjoyed my flight and the whole traveling experience went smoothly. I was really proud of this whole… ‘Traveling on your own’ successful experience.

I went to MozFest as part of the participation leaders’ team so the first day involved a dinner with the team. I got to meet a lot of great people from around the world and get to know them. Some were to do sessions at MozFest, others came to support or just participate and learn skills they could use in the future.

What I absolutely loved about going to MozFest was that I was able to see some super amazing people! People that I spoke to on IRC while working on Air Mozilla. I got to see the awesome Air Mozilla airship which I admire and saw the people that made it happen! I was super happy to see part of the  team.

WP_20151106_17_45_02_Pro
Air Mozilla Airship

 

Seeing the people I worked with on the summer was very special to me because I always wanted to get to know them. Read more

Deleting an Item from a List in Python (Pop, Remove, Delete)

Last 2 weeks I was reading django girls tutorial which is something I had promised to do when I wanted to learn more about Django sometime back. This day finally came where I read it.

So as I was reading it, I thought it will be good to have an example of how to delete a list item since it already had one for dictionaries. I decided to suggest  that contribution as it might be a good thing for a newbie to see. Then I got a question lingering in my mind….

What do I feel is the best way to demonstrate that? I went to StackOverflow to research on how others felt was the right way or better way to do it and I notice the main suggested ways, in the few Q&As I read, were the pop method or the del statement.

That led me to think of if I should create a suggestive pull request with one of these two suggestions [by the way this gist code embedding trick was shown to me by another cool Outreachy intern. It looks really pretty I must say. High five to you if you are reading this 😀 ]

Pros
Suggestion #2: Seems like the best option because it also returns the item that gets deleted, in result to that, that value could be used to do something. Read more

A bit about my thesis – Stage 0 – Arduino

The thesis I am working on is on has to do with several technologies. So far I have figured out that there are 4 techologies I am to work on

1) Arduino 2) Bluetooth 3) Android 4) Robotic Arm

Basically this is a mixture of robotics, mobile development, micro-controllers, switchers and the list can go on and on. The goal is to get a robot arm be controlled by an android phone through an “app” that I have to make, communicating with a bluetooth module. I also have to write a dissertation about it in Greek.

To make things simple lets say it is a mixture of hardware and software, which is something I like because I want to get involved with both before I graduate as my studies involved both.  It is good I challenge myself as much as I can. Right now I have worked with the hardware, below I’ll have a picture with some wires I soldered for the project showcasing my successful newbie skills 🙂 and a lil bit of my project. Few weeks ago my sister’s laptop which I use got its charger cable torn and I decided to fix it but I ended up making it worse and it never worked again oppose to it working after several tweaks. I tried to find a DIN connector and see if I could figure things out but I couldn’t find any in the electronic store so we had to get another one.

Soldering, even though my hand is pretty stable, is a bit hard for me because I find it challenging to get the solder melt and attach itself exactly on the place it was intended to fall to, and then we have the fumes and how tiny some components might be. Hopefully with time things get better. So far I Read more

QS World Grad School Tour Athens

Last Saturday I decided to go to the QS World Grad School Tour that took place in Athens (Greece) as I am interested in the prospect of continuing my studies if and when I get the chance. I was a bit hesitant at first due to several factors and me having other things I wanted to do, but at last I decided to go. When I went there it was packed, unlikely of what I expected; because I have gone to a few technical and educational meetups here in Greece and it was always less than 100 people. This time it was super packed.

It was easy for me to find the location, which was Hilton Hotel in Athens, I did have to ask a few people on where it is, but it was easy to get there and my first time to enter a Hilton Hotel. So I went in there and asked where is the QS Grad Tour; they told me to go straight ahead and I will see people waiting to be enrolled. Now, I was told (by what I read online) that I had to enroll online before I get there to participate, however when I went there it was slightly disorganized. I had to register for the 2nd time through a tablet I was given by one of the workers there, to get some numerical code that is needed in case the universities you visit want to send  you additional information. I stood in the line for about 30 minutes I’ll say. At the same time the seminars listed in the program were taking place but something I found odd was that it had a lot of empty chairs and there were many people outside. I didn’t really get what those people were doing outside, initially, but after my enrollment I decided to not go to the seminars but instead go towards where the crowd is. Well, that was the best decision ever! Haha, and if you go there please do yourself a favour and go right away to the universities area because you will miss out big time if you visit the seminar room first.

The first counter I saw was one from British Council who were in charge of the IELTS exam information, I actually know English as it is my first language (despite my grammatical errors here and there), but due to me doing studies in Greek I will have to do an IELTS or some equivalent English test in the future if I want to get into a European Masters program (I don’t know about the requirements outside the EU yet). After that I went to the GMAT counter to get an information on it. I couldn’t  find a GRE counter so I couldn’t get to ask for that. Then I went to a couple of other counters and finally found where the “CV experts” lounge. Can I say my eyes blinked with joy when I saw that? They took the CV/Resume of each participant (so it is good to have your CV with you if you go) and gave thorough feedback on it. I have got feedback on my resume several times in the virtual world, but this one was face to face plus free too. So I waited in the line for about 30-40 min i’ll say and finally I was able to get to the counter. I sat down (after filling some info for a resume makeover giveaway they had), and she looked at my resume and gave me some cool ideas. In fact, she told me some things I wasn’t told in my other assessments so this experience was enlightening and one that is so worth it.

I then went to some other places and as I waited in the line I was marking the universities i’ll like to visit. Read more