Posted in Explorations

The One at Grace Hopper Conference.

Ah, so this will be a fun one (A girl can hope). A recollection of an amazing and full of unexpected experiences week. I should have written this post sooner as the details have started to get fuzzy in my head and I had already envisioned so many events that I had to include, hopefully this piece does justice to the way I had wished I could convey my journey. The post might seem random and full of highly opinionated musings at places so it might be safer to call a recollection of a journey into self-awareness rather than GHC, for a better recollection and breakdown of the events themselves, please visit the official GHC website.

Let’s begin by getting formalities out of the way, GHC, what is it? Frankly put, it is the largest gathering of women associated with the field of computer science across the globe. When I say big, I mean big. This Big:

 

So it began, on a shiny happy morning when I received information about my acceptance for the travel grant, from then to a series of legal proceedings later, I was on board a tad long (22) hour flight bound to Houston. In spirit of full disclosure, this was my first foreign trip so had that air associated with it. But that feeling wasn’t long lived because of the welcome and warmth I felt from everyone I met went a long way to eradicate the “foreign” sense of things.

Cut to the first day. Whoa! is all I felt. One advice to fellow conference attendees especially if you are a student travelling almost alone, Make Friends! As many as possible and as soon as possible. Talk to a few people ahead of time, talk to people as you wait for food/badge/entry and especially in the shuttle rides. These people can be older, younger, more experienced or first timers but everyone will be carrying an opinion and outlook on life that will make you appreciate or at least think about the world more. Some might end up being friends you get to meet again and again at various events and even be our all as fellow women in tech as you join the workforce. Some of the people I met on the very first day….well most of them were fellow former Google interns but from across the world, which made the start promising.

And the conference begins! Doors open to the welcome note which is a popping party in itself. I have to say it was an honor hearing about the real struggle the women on the stage had faced and still strove through just because of their passion for computer science, I could not help but feel thankful for the opportunities we have, in many ways due to them. I for one do not believe that today there is any great hurdle for women in to succeed in computer science if they wish to, yes, there is a matter of changing perceptions and an acceptance that is still missing in some parts of our society but I am sure of the fact that it will change soon. After seeing and hearing first-hand how these women never gave up in face of one struggle after the other and knocking on several closed doors, any excuse I might have ever wanted to make for not trying till the very end just vanished.

Megan Smith, CTO, United States of America, Former Vice President of Google[X].

 

The Career Fair

Where the Magic Lives.

The first thing I did was (not so proud of this) visit the career fair. Because come on, that was like Disneyland (Disney Tech itself was there!) for someone about to join the tech industry. And it surely lived up to its expectations! An endless sea of men and women from the most renounced companies in the world just mingling about like it’s every other normal day! If only I could clone myself and visit all of the booths!

While I was not actively looking for a job, my main motive was to be able to talk and gather knowledge about what it is that these companies are looking for when it comes to hiring candidates and what I could improve or inculcate in me to be a better programmer. For me it was about getting to know the community I would be joining a year down the line and see the world from their eyes. The result? Almost everyone I talked to was friendly, helpful and most of all passionate about the work they do. There was no lack of ideas and spirits and they were even open to hearing your opinions on their work. For a 20 something kid, being heard and respected by the top engineers and professors in the industry, that’s an experience you cannot trade for all the money in the world. I know I might be painting a too rosy picture of everything and the disillusionment might come once I am on the other side of the table, but till then I would like to believe that if things are even as half as good as they seem, I’ll be happy.

Going for the serious look, never a good idea.

Oh and yes, in attendance at the conference were all the top universities of US where I got to meet esteemed professors and faculty and wow! Were they even more excited about their courses than the students who came to talk to them! Despite perhaps knowing the fact that graduation courses at these universities are the most coveted ones on this planet, they were genuinely trying to convince the attendees about their benefits and offering help in all possible forms.

 

 

Open Source and Systers

For those of you who have worked in Open Source or any remote projects will understand the feeling of working with peers you haven’t seen or even talked to for long periods of times and having formed a kinship with them. For me, that community is Systers, the technical wing of Anita Borg Institute. From giving me my first mentor to first mentorship opportunity, I have come a long way with it. At GHC, I was able to meet my mentors and ideals whom I had been guided by and whom I had assisted in various endeavors.

Volunteering at the GSoC booth for Systers was a moment of honor in itself. (The fact that the Anita Borg Institute booth was perhaps the celebrity pit stop for the conference highly helped matters as I was able to interact with these amazing women who many a times came up to you and started the conversation when you were too shy!).

This slideshow requires JavaScript.

Now those who know me know that I blabber a lot about Open Source and why everyone should give it a try but this meeting just affirmed my belief that everyone should without the desire of material benefits [I have never been a GSoC student myself] be a part of one or the other community which will not only improve their own skills but provide a medium to help others down the road.

Truly memorable was the Systers lunch, the company was good, the food was amazing the energy in the air is still riveted in my mind. Systers for me now is more than a community, it’s a fabric I am well woven into.

 

Technical Talks.

The talks and workshops were one of a kind. Even the most difficult of the concepts were broken down into tit-bits that could be understood and meant to ignite an interest in the attendees that they could take forward. For me, attending the talks did not just mean concentrating on what was spoken about but how it was delivered. I have been a speaker at some events back home and have experienced my fair share of moments of stage fright and the occasional butterflies in the stomach. What attending the various talks here led me to believe is that alongside the content, its delivery has to be in a way that your audience can connect with you and come to the self-realization of whether what you talked about makes sense to them. They should be able to reach a decision of pursuing your teachings. The answer can be yes or no, but if they can make it, you would have done your job of presenting them with the opportunity which is at any moment better than having left them confused or unsure in the end. In the end, it’s the practice that matters, so I urge everyone to submit proposals and attempt to talk at local events and more if this is something that interests you and not wait for the moment till you feel you have enough qualifications. Every experience is unique and it counts.

 

After-Party

The conference cannot end without mentioning the After-Party. Which was too crazy to be true. Well, when they let their hair down, they take the town with them. All of the students, the organizers, the speakers could be seen shaking a leg together and trying to grab a picture with the who’s who of the tech industry who were quite hard to differentiate in the otherwise rainbow of colors and spirit that the event was. (Yes, being true Indians, we did manage to request the DJ to play a Bollywood song. Who knew Balam Pichkari was quite famous out there?)

Farewell Houston

A small parting comment on Houston. I found the city blissfully calm and at peace with itself. There seemed to be no rush to anything (quite a change of pace from Delhi) and the people were friendly and welcoming. Had a fun two extra days to explore around with a partner in crime I have known for years. A chance dinner at Hard Rock Café and dancing with the locals was not what we thought was in the books when we were roaming the unfamiliar roads, Houston quite surprisingly shuts down well before night time.

Going over the board touristy.

Especially enjoyed visiting the NASA space center, the birthplace of the ominous

“Houston, we have a problem.”

phrase, indicator of galactic proportioned troubles ahead.

Live band and dancing, fitting end to the trip.
Advertisements
Posted in Guides

Attempting Google Summer of Code – A Mentor’s Advice

I have been asked this question once every day for the past week so instead of the repeated iterations, I thought it’d be best to invest some time into writing it all down. I myself learned a lot in the entire selection process so would like to share those small pearls of wisdom before they start fading away.

The easiest way to get started with GSoC is to just get started! It is not rocket science. It is not even difficult. The process in itself not at all hard or demanding but it is made elusive by the amount of talent and hard work it sees from the students who participate. This post won’t be able to guide you on how to make the best proposal or how to grab GSoC because that will ultimately come down to your own dedication but it will remove any hesitation or doubt you might have on how the process works. The sole aim is to not let any misunderstanding about the the process, or the assumption that the projects to be done, are difficult, hold back a student from trying.
The projects in my opinion are simple, well majority of them are. Complex projects do exist but plenty of projects can be picked up by dedicated beginners and be completed successfully. Even if you feel you are not qualified enough, do give it a shot as soon as possible, don’t wait for next year. Being rejected (if it happens) in the first attempt will teach you a lot more than the year of waiting will.

So let us start and answer the first question, where to start?

Disclaimer : I will be using the project I mentored in GSoC 2016, PowerUp by Systers to illustrate the process. Also the guide will apply more on development/coding projects under GSoC as I am not well versed to the process of applying for research/scientific projects that exist.

1) Pick an organization (or a project)

opensource-logos

To be (preferably) done before the organizations are officially announced
This is sometimes the easiest part, sometimes the hardest.
First things first, what are these organizations? The organizations participating in Gsoc are open source organizations that put up their entire code-base for the developer community to share and build upon. Open Source means just that, open for all. This is not the same as free software but that is beyond the topic of today.
Your task is to go ahead and browse the 150+ organizations list of GSoC(previous edition) and pick one that catches your eye. Or you can browse projects according to your preferred technology stack and pick one from there. For example, say you were to search Android, you would come up with a bucket loads of projects and say you picked PowerUp.
While picking an organisation early you run the slight risk of that organisation not participating or qualifying for the next edition so place your bets safely (preferably an organisation that has had at least 3-4 projects in the previous edition).

— Some Technical Jargon —
Before we move to the next step, you have to know what contributing to a project technically means. It can involve various aspects like : a) Creating an Issue. b) Sending a Pull Request 3) Documentation. 4) So on….
Don’t feel dizzy just yet, explanations are on the way.

For beginners to version control, you would need to learn the ins and outs of Git and Github and how to work on collaborative projects. Refer:https://github.com/chhavip/Git-Guide to get started off the right foot.
A) Creating an Issue.
For this you need to go through the project (run it on device, deploy it on server) and find bugs in it. Head over to the issues section of your project, make sure it doesn’t already exist and open it up! If it gets approved by the project maintainers, you might get to work on it too. Usually it is advised to open an issue first and then send its solution rather than just sending the fix.

B) Sending a Pull Request
Remember the solution to bugs we talked about? This is it. How do you fix something or add a new feature to the project? Pull Request is the way to go. You work on your copy of the project and send a request for specific changes to be merged with the original project. If it gets merged? Go out and celebrate!
Enough talk, show me the steps :

C) Documentation
An easier approach to contribution that is often overlooked. Coders are lazy to document but it matters! Help complete the introduction, write the wiki or a guide about the project and believe me the mentors will be more than happy.

— Its Over Finally —

2) Start working on your picked project

How much work you do is left up to your own dedication
This is the salient part of the whole process. Here your main aim is to get to know about the project, the organisation and the kind of work they do. Now different organizations go about differently. For some you can simply start out by creating issues and sending PRs on their project, for others you need to introduce yourself first on the mailing list, ask for the required work to be done and then start. The main point being that this is the point where you can showcase your coding skills and make the mentors believe that you are good enough to be selected.

A sample procedure for contributing to an organisation: Suppose you picked PowerUp as your project of choice, then head over to the issues list : https://github.com/systers/powerup-android/issues and sort through all the available issues. Sometimes labels like ‘beginner’ and ‘gsoc’ are put up to help first time contributors make their mark. Understand the project and see if you can fix this issue. If you can, the voilà! But not just yet. The best way to go about sending code to an organization is to first comment on an issue and express your willingness to fix it, wait for approval from the mentor and then you can go ahead and submit that PR 🙂 . This way the mentors can interact with you and let you know any intricacies hidden with solving the issue or if it has already been assigned to someone else. Again, this may not be the procedure with every organization but serves for widely approved conduct.

3) See the Ideas List

Organizations start releasing their ideas list at the same time they start applying to be a part of GSoC which happens around in February. Go through this list. It can have the project you have been working on or completely new projects and sometimes you can even suggest your own ideas to the organization. From the ideas list, pick the projects that seem most suitable to you and start envisioning how you would go about completing the same. This forms the base of the project time line and the time you spent upon several ideas will showcase your understanding of the same in the proposal. So selecting a final project for which you will be submitting a proposal is a crucial step, give it time.

4) Write a Proposal

proposal-writing-workshop-2_80ecd181-bc38-4104-b7aa-4654aa72b564

Now comes the part that carries a good amount of weight age in your selection. This is almost the last step in your entire journey. Now what is a proposal? After the organizations are officially released on the GSoC site, now is your time to start going through the ideas list of each of your previously shortlisted organizations and see what projects suit you best. You may submit a proposal for a completely new project and not the one you contributed to as contributions to the organization are considered on an overall basis. A proposal basically contains all the information about yourself, your academic status and information about how long have you been working in open source. The important parts of the proposal are where you are supposed to answer queries related to your vision and plans for the selected project and provide a concrete timeline according to which you will be working throughout the summer. This is to judge your understanding of the project and see if you can correctly estimate and incorporate the time it would take to complete the project.

In many ways your proposal is the only medium for the organization to get to know you so keep in mind the following points when composing one:

  • Submit as early as possible and utilise mentor feedback.
  • Do not deviate too much from the basic requirements, Quality matters more than Quantity.
  • It’s the only medium for organisation to know you, provide adequate information.
  • Tabulate the final timeline in a clean and efficient manner.
  • Make the timeline as realistic as possible, include buffer period for code cleanup, bug fixing and documentation (an important but often overlooked part).

5) Get Involved with the Community

Now this is a somewhat vague aspect of the process and so might my advice seem to be. Problem being that there is no set pattern as to how to go about doing this as different organizations have different form of communications. But the purpose is the same irrespective of the organization – make yourself known. This does not mean that you badger the mentors or flood the mailing list! This means that you maintain healthy communication with the members, by properly introducing yourself, by properly researching on a topic to make an informed query and also by helping out fellow students who are stuck somewhere. If your organization arranges a video chat with its prospective applicants, do attend even if you don’t have any questions! You might be able to answer someone else’s query and that will go a long way in uplifting your image.

 

 

Coming to the end of this very long post, my final piece of advise (request) would be that you apply, doesn’t matter if you are an absolute beginner or if there is only one month left on the clock. Even if your chances are less than zero, you are guaranteed not to walk away empty handed by investing a few weeks in this task.

Also this is a  small presentation I gave at one of my recent talks for Women Techmakers, attaching just because I had fun making it  😉  .

Feel free to comment or reach out to me (chhavip.gupta@gmail.com) for any other specific queries.

Posted in Uncategorized

Tech Events and its Folks.

I expected my Summers to be a lot of things, exciting, hectic, and full of learning but I thought I wouldn’t have time to do something I have come to love – attend tech events. But old habits die hard and that’s how I found myself attending and participating in more events I could have imagined for the given time frame.

First Up : Tech In Asia Summit, 2016. This was a start-up pitch event and not one of the hackathons I was used to. But a line up of great speakers and promise of free goodies made me take few hours off work and end up at it’s gates. Before this, I never saw myself coming up with a StartUp of my own, having worked at some (because they are exceptionally fun to work at), I had seen the amount of grit and hard work that goes into being the person behind the wheel and was wary of my capacity for it, but this event was abuzz with the kind of energy that is seldom found inside any corporate four walls. I was able to attend perhaps one talk and preferred to spent all the rest of the time talking to some of the great people around. The opinions I received and debates I had with the founders of the startups about their products, the current market and my own experience were scintillating and exhilarating. I was hesitant at attending an event without any real purpose there but found myself at home in this hive of tech lovers and entrepreneurs. There, I learned more about the products, the people and about myself as a person on whether I would like to be a part of one these. I would recommend attending similar events for those looking for internships or jobs in coming years, or just to have some interactive fun. Mentionable products: Flock, BeeHive, Recipe Book

Next Entrant: AngelHack Bangalore, 2016. What can I say? When your life becomes an endless hackathon, your enthusiasm to do the same on weekends has to dim down. The sole attraction for the event was its location at JW Merriot and the food it would have. I discovered  spending less time on the problem statements, the coding and more on the environment around me. For the first time in all the hackthons I attended, I went to every sponsor’s desk and chatted about their involvement and expectations. Interesting conversations with fellow participants from across nearby states sprouted up. The more time I have spent interacting, I have begun to realize that you can learn from  a 10 minute conversation with the right person than a night of coding (though I in know way discourage one to do so at hackathons), but point being the awesomeness of these events comes from the people attending it and it would be a shame if that opportunity is led to waste. Our team going on to win the HPE Grand Prize and the much coveted prize of GoPros happened in one of the least expected fashions. Being able to connect with female developer community in Bangalore was also one of my motives for the event and was fulfilled to some extent though the participation levels still left something to be desired.

Three days spent at my comapany’s internal hackathon was perhaps the only true amount of coding and product building I undertook. Unfortunately, I lack the liberty to disclose the details for the same.

These events took place in a back to back fashion and at the end of the month of July I was left reevaluating my earlier assessment and it seemed that time for the things you like can be made in any circumstances. They gave me a quick and thorough insight about myself as an individual and techie. The very fresh and diverse perspectives I gained from all those I had a chance to connect with will influence my decisions in times to come.

hackathon_swag
Not buying clothes ever again.

 

 

 

Posted in Explorations

Best of Both Worlds.

How I landed in my current situation is a bit of a fix. Wanting too many things often leaves you with conflicting and complementing scenarios and that is precisely what happened with me. Being an intern at a Software giant and a Mentor for Google Summer of Code is not how I imagined myself this summer but thats how it is going to be.

Learning is a very simple process but the forms it takes is what makes it beautiful. The dual roles I am in are teaching me new things everyday. At one side there is the corporate rush of finishing a task on time, facing technologies that both challenge and enthrall you while on the other side I learn how to be patient, elucidate various concepts and being responsible to be able to provide proper guidance to ensure building of a fine product. At one place I am allowed to make mistakes and bug my seniors for doubts while I assume the role of the source of clarification in the other.

In all honesty, the dual perspective has enabled me to peek behind the curtain in either role. As a learner, now I know how willing our mentors are appreciate their efforts all the more. I am able to put forward my difficulties in an easier to understand manner and communicate with my mentors better. When I don the other hat myself, I am significantly more articulate then I was before and am able to break down the work in smaller, achievable tasks. All students transition into the phase of mentoring and guiding others and we wish to recall the experience we had to be better at the task but I feel like getting the live preview of both. I am able to in many cases immediately apply what I learned.

The point of the long post you may ask? Well, I am not sure. Maybe the way how after a day of enriched learning made me want to extend the same experience to the ones I can continuing perhaps the most sacred of cycles made me appreciate the situation I am in. And that one thing is for sure, whatever conflicts I had to incur to reach here, I am glad I did. All left to do now is hope that I don’t mess both of them up!

noogler_cap

Posted in Explorations

All Play and No Work

This is perhaps going to be my first non technical blog entry. I could place the blame on not doing much in the that department recently, things need a spark I suppose (more pondering on that later). So the question now is, what I was up to if not slaving away in front of my other heart (laptop). Well I was playing. Literally. Playing what you may ask? No not Counter Strike or NFS but actual real to ground sports (geeks can raise their eyebrows at me now). The week started with the Annual Sports Fest being organized in the college and for some reasons it had more fervor this time around than all the previous editions.

Unsure at first on spending all the time and energy (and the dreary prospect of sweating under the Sun) but a long story short I ended up signing up for a couple of sports. The week did not start on a good note as I ended up on the receiving end of a very well placed Volleyball smash, rendering my hand to the following state, looks cool right? 😉

IMG_20160402_153049
Ouch 😛

Taking responsibility that it was perhaps not the best decision I opted to play and omitting the blow by blow here I would rather like to talk about the things sports once again taught me.

You cannot and should not underestimate anyone. Let me narrate some examples of same:  One of the underdogs went on to defeat every other team to make it to the finals in one sport. In another the projected favorites lost to the underdogs at a crucial moment.

People can surprise you. Sports test the nature of a person, not just as a player but as a leader, as person under pressure and person who can quickly adapt to situations. With the right kind of motivation (what works for whom is another surprising factor 😀 ) people can outperform themselves. And some people are plain junkies,  they live for the thrill of crossing that finish line no matter how bangled up they are (broken limbs and fainting out of exhaustion is just another day for them).

Another fascinating phenomenon I observed was the hidden abilities and passion abounding from the unlikeliest places, that nerdy little girl throwing the discus so far, that gangly looking guy smashing the ball into the ground, that shy introvert leaving the wind in his wake as he runs. For many this time brought back nostalgia of the pre sabbatical-from-the-world period of Indian students studying for entrance exams where the only exercise involved traveling to your coaching institutes 😉 .

To sum it all up, I had a great week. Ups and downs, fights and hiccups, sweet victory at places and struggling to breathe after an embarrassing run at places. I don’t remember a single day wherein I didn’t fall on my bed nursing a new bruise. Currently I am limping a bit and have an inability to hold a pen (a great excuse to skip classes) and will promptly begin my abstinence from sports for a while, but the experience? It will leave me smiling for a few days.

IMG_20160410_112620
New addition to the cabinet

Note to self: Stop procrastinating and go back to work now.

 

 

 

 

 

Posted in Enlightened Encounters

Enlightened Encounters : Social Hack Eve

Social Hack Eve, Women Who Code, Delhi: 4th March, 2016.

This is going to be a short entry because that’s how long the event was. Very short. But the impact it had – now that was everlasting. This may seem like a promotional gig for a cause I support dearly and maybe it even is, but I can promote this cause without any qualms or feeling of self interest. Because what are we promoting? Hope? Opportunity? Guidance? Women Who Code is an amalgam of all these that resulted in a beautiful experience.
Let us go over the events of the day, being an organizer I was partially aware of how the day was going to proceed but what even I hadn’t anticipated were the joy and experience the people brought to the event. 30 odd women(men were very much welcome but only a handful souls showed up), students and professionals alike gathered in a welcoming aboard to discuss – well no one had any idea what.
The stars of the day were Women Who Code Leaders – Alaina Percival, Chief Executive Officer, Joey Rosenberg,  Global Leadership Director  and
Jennifer Tacheff
, Vice President of Business Development  who were so engraved in the fabric of the meeting, it was hard for anyone of us to feel we were meeting them for the first time. What followed next had nothing to do with promoting a name. It had everything to do with having intelligent and enlightened conversations. Empowerment at its zenith. I saw as people recalled their stories of not being afraid to want what they wanted and believe me that is an experience many of those in our educated youth are still shy of having.
All the people gathered there were united by a common passion for their own progress and because of a belief in community bonding and building.
An unique experience of the day was #Applaud section which entailed attendees coming up and speaking and being once again proud of anything and everything they had achieved. There was a seamless connection of people with ideas and people with means – job opportunities, mentorship, guidance or just some others to share your experience with. It was gratifying to watch the will to help was as strong as the will to learn.

I could preach about the outcomes and ideology behind organizations like Women Who Code all day but what I experienced that if you remove the name, the mystique, all it does is provide a platform for like minded people to come up and share their life stories under a safe banner where they know they will be appreciated. And what could ever be wrong with that?

All inspiration apart came the end. And what an end it was, all the attendees and organizers put their feet together and moved to the beats. A memory that will bring a smile to my face every time it is reminisced.

Enjoy the video recap and follow us on https://www.facebook.com/womenwhocodedelhi/ for future events!

Posted in Android Experiments, Guides

Android Resources : A Beginner’s Guide

I have been asked this question umpteenth number of times now: Where to begin in Android Development?

Somehow the field of development has garnered a lot of interest in the recent years and I for one appreciate the efforts made by newcomers in trying to grasp as much as possible. The concept of hackathons and start-ups needing beginner level developers has put a meaning to all the work done and prove a worthy motive for developers in wanting to up their game.

I will try my best to provide a flow of learning and the important things every developer should know. This list may not be perfect, far from exhaustive and a little more than a guide. (Disclaimer)

First Lesson Of The Day : Learn to Search! Stack Overflow is your best friend in development! Google Google and Google some more for every problem you have. Mix and combine the answers, copy paste and always make a thorough search before asking your own question. Also when asking a question try to be as specific as possible. Almost everything you are trying to do has had people try it and fail at it. So the answer will be out there somewhere.

Lesson Number Two : Learn to Read Other’s Code. Stuck at implementing a feature? A library guide seems incomplete? Go through the source code, check the flow and see what you missed out. Developers are lazy people when it comes to writing so you’ll seldom find a wiki or guide that is complete or updated (I have encountered so many where they change variable names and forget to indicate so in the wiki.) So read the source. This will not only make you comfortable working on team projects but also give you an idea of how to write code so other’s can understand it easily. Very rarely will you be building a project alone so let’s learn to be a team player 😉

Out of Clever Lessons Now, so back to boring guide for Android. I won’t be providing links to specific tutorials but rather a list of what you should learn (you can go ahead and apply Rule Number 1 to find the tutorials and also because a lot has changed since I first learned Android). You should be able to compare code side by side and judge which is best for your situation, so open a couple of links on every topic and try to decide which one taught you the best and follow it.

The basic lessons to go through (and some not so basic):

  • Learn about the file structure of an Android Project and where everything goes.
  • Learn about basic layouts, toast, Activities and click events. www.raywenderlich.com/78574/androidtutorial-for-beginners-part-1   is a good guide to follow, the whole series is excellent.
  • Learn about intents, extremely useful, sending data through and fro from activities and how to open them.
  • Networking, learn how GET and POST requests are made, through basic HTTTP URL connection then through a networking library like Volley, Retrofit whatever seems best. Almost all applications need to be connected to the net and function in real time.
  • Image handling,take care  not using too much memory and rendering problems. Give Picasso, Glide and Ion a look.
  • Data storage : through shared preferences then local database (both have very different use case) then learn to use an ORM like Sugar or any other that seems better.
  • Fragments – perhaps the most difficult topic there is for beginners, create view pager, and navigation drawers on your own (then use libraries in the future – Neokree, MaterialViewPager)
  • GCM :  Google Cloud Messaging (Advanced): Learn how to do it on your own and then using helpful tech like Firebase. Can also implement the chat application with Firebase as a fun exercise.
  • Being able to integrate available APIs especially Google APIs like Maps. (Advanced)
  • Learn to interact with the camera and the gallery and handle edge cases on devices of various APIs (best to use libraries later for fast and effective implementation)

Once you are through with the basics or want to test your knowledge you can do one or all of the following:

Now for Some Side Tips : (Heads Up on things that become apparent in given time)

  • Android Studio is a genius invention, let it help you as much as possible. Learn about all the shortcuts available for code completion and jumping between files.
  • Do Not and I mean DO NOT stress about the Java implementation of everything. Why did the hardworking chaps in Google do all the hard work if you had to go ahead and spend your head at it. Accept things as they are.
  • A word of advice to Windows users, shift to Linux. You will be doing yourself a favor. So do it before you pull out your hair from all the waiting.
  • Use Genymotion for emulators if real device is unavailable (they are the best option though).
  • Learn Git / Github! The importance of this cannot be stressed enough. If you don’t know how to use them, you are a duck sitting alone outside the party the developer’s world is having.
  • Keep up to date with updates and changes in Android Design Guidelines. Read about the design repository. Some of the best guides available out there : https://github.com/codepath/android_guides
  • Its best to use open source libraries available to build nice features that adhere to Android Design Guidelines. A sample list of libraries for simple features is available at my starred repositories list (too lazy to list them, apologies) Github Profile.

 

I will add resources and guides as I remember them and any suggestion, comments are welcome! Hope it helps some of you out there. Keep coding 🙂

 

Posted in Uncategorized

Learn It Girl! Learning As I Teach.

The second edition of Learn It Girl!   finally kicked off this week after tremendous amounts of efforts on the parts of all the applicants and the organizers. I personally am aware of the issues encountered being an organizer but today I am here to talk about my experience  as a mentor as that is possibly the most selfless volunteer task in this program. I have mentored my fellow juniors and take classes at a local institution but each experience is as unique as night and day. The level of commitment and willingness that goes into one-on-one mentoring is both surprising and humbling.

Honestly when I applied as a mentor I had little idea of how everything will progress, I had no misgivings of my technical abilities but after a point it is the way you come across that  matters. While teaching I have to question every sentence I speak to make sure I did not assume any background knowledge required for the same, the tasks have to built up from the scratch with increasing level of difficulty and you have to judge both, your ability to impart a certain piece of information and that of your mentee to grasp it. The process is interactive, thought provoking and ultimately rewarding in terms of the joy and gratitude you can hear in the voice of the one being taught. In my opinion it forms one of the most sacred bonds – built on the foundation of give and take of knowledge.

The task does not come without its share of hiccups or rather practical constraints as most of the mentors (to the best of my knowledge) are not professional instructors and to decide a suitable path to undertake within the given three months can be at times daunting. I am in a personal dilemma on deciding how much of the project proposed by my mentee (an ambitious and innovative idea) is possible in the given time considering everything has to learned from scratch. I wouldn’t want to deliver anything less than what she envisioned. But these are small problems, better and beautiful solutions to which I am sure will arise on discussion and deliberation. At times I am as excited as I was when I first had the same lessons. This journey will hopefully help many (both mentors and mentees) in their own unique way and help shape a tech community that is built from within with crusaders to take its mission forward and others being prepared to carry the torch in future.

Posted in Android Experiments, Uncategorized

Building CyanogenMod 12.1 from Ground Up

This is part of a continued series of my experiments with Android. I am pretty sure my device will just pick up its bags one day and walk away from me in Disney movie style of leaving a cruel master. I better make the most of it till then.

Seeing as I had rooted and explored the world of custom ROM for a while, I decided (well having time to kill decided it for me) that it I should try building the CyanogenMod code from scratch. Download the source and all. I will have to ask for forgiveness right here for messing up any technical terms and process as I am not quite sure of all that happened myself. Having a great mentor always helps and I was fortunate enough to have one who guided me to follow :

https://wiki.cyanogenmod.org/w/Build_for_hammerhead/

A very comprehensive and step by step guide. What all the process entails can easily be read but what I wanted to share were the hair pulling difficulties I ran into.

Half the guide was already covered so I began by downloading the source code which on the first attempt brought down my healthy net connection of ~30mbps to some 18kbps. I had to give up and call it a day. The journey was kick started at 5 in the morning in the hopes of Delhi winters keeping everyone in the hostel asleep leaving the LAN all to myself. I was blessed indeed, it was done in matter of half an hour (all 10 – 12gb of it). I even used and intimidating looking commands for running download on threads (not that scary but I deserve brownie points) .Then came the waiting part – my device needed a lot of food. First a ‘breakfast’ then a ‘brunch’. Aptly named as I had both while waiting for it to finish. But before that how could Java not poke its ever demanding nose in the middle? Apparently I had jdk version 1.8x while it worked only for 1.7x, the agonizing search of removing the latest update, countless ‘jdk already in its latest version useless messages and path variables mess up, it approved my jdk version (Android Studio wasn’t too happy about this downgrade though and it let me know.)   After hours of waiting and watching my terminal light up like in Mr. Robot, I saw the grateful message of a successful build!

Finally the build was flashed onto my device (after getting hysterically lost in the myriad of folders that gets created) and seeing no apparent change, was doubtful about the validity of the whole process. But as pointed out by a helpful soul, seeing my name on the kernel version was worth celebrating and that’s what I did right after 🙂 .

kernel name

Do I wish to carry on and be able to actually make changes to source code? Yes.

Am I sure I will be able to? No.

No step of this journey is without complications and I am not sure how much patience I have. I have come this far, I wish to go forward, only time will tell if I actually do. Fingers crossed.

Things learned today:

  • Think before you decide to mess up your only device.
  • Java has grown too complicated for its own good.
  • Linux/Terminal is GOD.
  • Happiness is seeing your name in the Kernel Version.

 

 

 

Posted in Explorations

Learning “How To Teach”

I am a bit young(or at least I assumed so) to find myself at this stage but I do find myself at a place where I am in a state to teach others something. Be it anything. It is a surreal feeling in itself. Keeping aside the feeling of pride and vanity, there is a sense of wonder in being able to impart knowledge to others and see the expression of gratitude light up their face. This is a small foray into how I reached here and what I plan to do now that I am here.

It began with explorations of my own, naive and unskilled, a bit late to the race actually, I ventured in the world of tech and let it unleash whatever wonders it could on me. I tried competitive coding, web development, game development, AI, android development and the hunt is still on for the next challenge. In this journey, I left my shyness behind and sought help from whatsoever source presented itself. Seniors, blogs, friends, forums I searched them all and was fortunate enough to find people willing to mentor and assist in mundane tasks, spending time and effort. That was it when I decided that some traditions are honorable to carry forward.

Following in the footsteps, I welcomed juniors and friends seeking my help and guidance in matters I had some knowledge of and it is a task I took up diligently. What amazes me is the ease with which I can recognize even over a Whatsapp chat (coherent conversations over which are difficult anyway) exactly what the problem someone is facing and is not able to convey. I guess my own days of trial and error have taught me too much about making mistakes. There are some plans in motion to expand my reach and take up more elaborate sessions. There is a sense of fear and responsibility with this task that you cannot deny but the overwhelming joy of sharing the best of what you had learnt, giving a simpler solution or at times even making someone understand the problem better is a reward that urges you to fight through your fears. It is a satisfaction and gives a high like rare other things can.

I am not an accomplished teacher, far from one actually, taking my first steps. I don’t wish to make a career out of this but will always attempt to build a stronger community which can survive and grow by supplying knowledge from within. That is my dream and that is why even if my efforts are meager and audience small, I believe they matter.