Code[ish] logo

Tags

  • education
  • getting started
  • new developers
  • python
  • node.js
  • github

43. The GitHub Student Developer Pack

Hosted by Joe Kutner, with guest Anupam Dagar.

The GitHub Student Developer Pack is a collection of free offers and discounts from dozens of tech companies including Heroku, SendGrid, Sentry, and TravisCI. Anupam Dagar is a final-year undergraduate student at Indian Institute of Information Technology, and he's sharing with us how the Student Pack has helped him and his peers grow into more confident developers.


Show notes

Anupam Dagar is now a final-year undergraduate Computer Science student at Indian Institute of Information Technology, in Allahabad. He tells Joe Kutner, a software architect at Heroku, about how he first came across the GitHub Student Pack as a freshman. He needed a domain name, and one of his senior classmates advised him to take a look at the pack, which provides free tools for any student over the age of 13.

With the Student Developer Pack, Anupam was able to build a project called HoxNox, a portfolio generator. He noticed that a lot of his friends were spending a lot of time perfecting their resumes on paper, so he decided to create a website that took the process digital. With an urge to keep honing his skills, HoxNox was his most ambitious project to date. With companies providing hosting and emailing services through the pack, he was able to build something that became quite successful.

Anupam strongly encourages students to not get bogged down between deciding which language or framework to make use of when starting their projects. The fundamental principles of software engineering are applicable to all of them, including catching errors and writing maintainable code. He found it useful to just start with one new part of the tech stack to work on, before mastering it and moving on to something newer. It's also important to consider yourself as more than just your code. Talking to people and building a healthy community is just as important, perhaps moreso.

Transcript

Joe: Welcome to another episode of Code[ish]. I'm Joe Kutner, an architect at Heroku. And today we'll be talking about the GitHub's Student Developer Pack. And I have with me a student who is a part of that program.

Joe: Heroku along with many other companies has partnered up with GitHub to help this cause. It gives students access to the same tools as professionals so they can build apps and be productive in the same way as those of us who do this every day.

Joe: So with me is Anupam and I'll let him introduce himself.

Anupam: Hi, I'm Anupam Dagar, a final-year undergraduate student at Indian Institute of Information Technology, Allahabad in India. I am an open source contributor and I have contributed to Zulip, Hasura, Public Lab and PFOS issue. I am one of the 50 GitHub campus experts currently in India.

Joe: And you're enjoying the program, I assume?

Anupam: Yeah. It's my final year, and my main course has been already completed. It's just some miscellaneous subjects remaining to complete my credits. The course was actually very much good.

Joe: And how did you hear about the GitHub program?

Anupam: I was told about the GitHub student developer pack by one of my seniors when I was in my freshman year. I actually needed a domain name and he suggested me to go with the student developer back. Apart from the domain name, I was getting a ton of extra tools, which already helped me to advance in my development career in my coming years.

Joe: And how long have you been working with the program?

Anupam: It's been two and a half years since I have been a member of the pack.

Joe: Can you tell us a little bit about the app and what it is that you're doing?

Anupam: My app, which I named HoxNox, is a portfolio generator. The idea was to make it easy for the people who have little understanding in how to make their own websites. I made this as a back-end earning project during the summer break after the completion of my freshman year. The app provides various methods to log in and also multiple portfolios to be created by the user and they can share the link to the portfolio which is accessible on any device at any point of time. This was the most requested features actually after... When after release the beta version along with university student community. Actually I did it in two ways. I first released the first version, which was for my college students, my batchmates and seniors, and then I got some feedbacks from them. Then finally deployed it, the final version onto the Heroku and let the world know about it that I made this, portfolio generator.

Joe: Interesting. So how did you come up with the idea originally?

Anupam: The story is actually quite good. So the name HoxNox is actually... Was thought of by me few months back when I was in a hackathon. That was my first hackathon and there was, I remember .tech domains. They were giving out free domains to us. So I took one the domain name and the random name came into my mind, HoxNox. And I thought whenever my first projects comes up it will be named HoxNox. Sohow the idea came up is like I wanted to learn back-end framework and I only knew front-end till the end of my freshman year so that during the summer break, I took up Django and tried to get a deep understanding of the underlying principles of the framework. So I took a couple of tutorials available online, went to the official documentation, but I wasn't quite confident enough to make an app in it.

Anupam: I thought of making a project from scratch, and learning the framework on the way of building it. So finally I came up with a portfolio generator, also known as HoxNox. I probably got this idea because I was making a lot of friends on single page websites till the end of my freshman year. I actually made a lot of websites because if there was any event, I volunteered. let me make the website for it so I can improve my skills. And at the end of my first year I had quite a good bunch of front-end websites midway. So during my freshman years, I also saw many of my seniors preparing for the final year placements, preparing their resumes and trying to boost their profiles. So I thought of making this hard copy ritual to go digital. So I knew that when you have such websites, whatever label or online, but I thought of taking it up as a challenge and giving it a try.

Anupam: I was excited about it because it was going to be my first project, which actually interacts with the end user and was not just a static website, which just shows the constant data. Also not to forget I had this fire of "keep sharpening up my skills and learning new technologies" burning inside me.

Joe: So you're running the app on Heroku. Can you tell us a little bit about how you're using Heroku and what parts of Heroku you're using.

Anupam: Deployed this app over the Heroku at that time, like the Heroku was not, I guess the part of the student developer pack. I got introduced to Heroku because when I was searching for the deployment platforms, I didn't know how deployments actually worked. I knew of some platforms but then know that it was limited to PHP and my stack was of Python Stack.

Anupam: So I got introduced to Heroku while looking for it and the best thing was, Heroku was free. The first thing came was... I will complete my first year. I want to deploy my project, I need a server, and each website said, "Pay us this much amount and we'll host your project." But then came Heroku, it was free. I got to know that I can not just deploy it easily like a static website. So I got and read data, some configuration is to be written and I read them and the thing was, deploying over Heroku was easy to very great extent. I just needed to do some configuration. Using Heroku Git and simply pushing over to the Heroku branch. And it was done. Also there was another way to just connect my app to my GitHub web whenever I commit to my GitHub repository, it automatically gets synched up. So this all actually quite fascinated me. And another thing were like setting up custom domain name was also very much easier because just like filling up a form view rather than configuring everything by myself.

Joe: So it's a a web app. You said you're using a Django and Python, is that right?

Anupam: Yeah.

Joe: And you're using GitHub sync, are you using any of our add-ons, databases, caching services, anything like that?

Anupam: Yes. For this app specifically I'm using, the Postgres add-on, I was using SMTP that was inside the Django, but I later on got an order that SendGrid is also there. So I am using SendGrid add-on also, but not for this app, but for my other apps.

Joe: So how would you say that Heroku has helped you? It sounds like it's obviously because of the cost, but in terms of productivity, what do you think are the advantages of Heroku?

Anupam: Actually I have seven apps hosted on Heroku at the moment on my account. So Heroku provided me with a Hobby dyno in the student developer pack. The best thing about that was that... For the free dyno, there was app sleep time. But with the Hobby dyno it doesn't have that any kind of sleep times. And considering that this project of mine still gets the recognition from viewers after such a long period of making it public, I definitely needed to use the Hobby dyno so that incoming user doesn't find the app sleeping. After shifting to Hobby dyno I have seen in... I haven't added Google analytics. I have seen like how the graph is going in a much better way. They're like...I can see the users are constantly accessing it.

Joe: So it's helped you operate your apps is what it sounds like.

Anupam: Yeah.

Joe: So what are... What are some of the other perks or tools that you've taken advantage of in the GitHub student program?

Anupam: Apart from Heroku, I have used DigitalOcean, also AWS and Atom editor itself. I am currently coding over the Atom editor. Then the unlimited free private repositories provided by GitHub is actually which is something used a lot, because there are some projects which I can't make public because they are my semester projects or I have not allowed to make it public. Then I have used Namecheap to get a domain name. I use SendGrid heavily to integrate meaning in my apps. And then there are quite a few new additions to the student development pack which I haven't availed till now because they were added recently. But I would like to for sure use them in my coming time. They are like Canva is there, .tech domains, the name .com domain and the Bootstrap Studio. I can get a license template from the Bootstrap Studio. I'm looking forward to it.

Joe: So coming back to your tech stack, I'm curious why you chose Python and Django, what your background is with those... With that language and how you feel about it too.

Anupam: So while choosing the stack of either Python Django or the Node.js, It was actually quite a big discussion which I had with a lot of students and the seniors before the summer break started. So it was actually like any person I meet, "What do you think I should start with? Should I start with the Python Django or should I start at the Node.js?" And the thing was like it was divided over the people who were comfortable with Python stack and the other people were comfortable with Node.js stack. Then it was like 50-50 consideration because like up to me itself, like okay, do what you want to do, it's not much of a difference you'll get what you find in the stack, like the votes are going to add and do the same thing. They'll make your server app and everything. So what happened was I didn't know much of coding experience in the JavaScript itself, but I was comfortable with Python at that time as a language. So I took up with the Django and I started with it and finally I'm here with the Python Django stack as, my back-end coding language.

Joe: Do you think that's a good tech stack for students, for people who are learning how to program?

Anupam: Yeah. After a year, or a year and a half, I am actually comfortable with coding in almost any language and I have also worked with Node.js as of now. So the thing was one of my friends actually even shifted to Django after Node.js. One of the best thing which I found in Django is it helps you make your apps faster, in a way it really takes less coding time. It takes handles much of the things by itself and the file structure is very much organized, which is not so much the case in Node.js. Then the programming language is in texts of 500 surface much easier than like there... If you have JavaScript, you actually need to take care of a synchronous functions and like how a synchronous code will execute. But that's not the case in Python. You know it, will go line by line over there.

Anupam: And actually the structure in a way how Django works is I like a lot... You actually separate your code completely in different files. It makes it easier to actually go around the development. So whenever I... Somebody asked me, "Which framework, should I start with?" So I firstly ask them, "Which language actually you are comfortable with. You can start with any of the framework, but I can tell you in which direction you can actually go easier with." So if somebody said, "I don't know JavaScript and I need to take a time to learn JavaScript but I know Python." So I said, "Okay, you can go over here with the Django framework, you will take less time to learn. But I've done... You can learn both of them." That's how it went.

Joe: Yeah, that makes sense. I think those things that are helpful to a student, are also helpful to people who have been programming for years. I mean ultimately I think it's tech stack that increases your productivity. Right? And that's useful to all developers.

Anupam: Yeah.

Joe: Let's turn to the Campus Experts Program. Can you tell me a little bit about this?

Anupam: GitHub Campus Experts Program is actually a program for the students who are actually enrolled in university or the school. It's basically for building your own campus tech community and with the support of GitHub. But it's not limited to that like you only building on campus tech community. It's basically a platform for you to actually enhance your skills. Be it public speaking or your leadership skills? Actually you get invited to different hackathons where you can interact with people or like conferences you can attend and have a talk with leaders of the industry, only express yourself and that actually gives you a good platform to be a good leader and enhance your share of stage fright or like talking to people in public.

Joe: Yeah. So it sounds like it helps with more than just technical skills, right?

Anupam: Yeah.

Joe: It's, it's things that... Other things that you... I mean and the, those are skills that you need to work in any professional environment. So that's very interesting to hear.

Anupam: Actually it's kind of.... I take it in a way like you don't just code, you are much more than a programmers. You actually can express yourselves how much, you know, go talk to people, have a healthy community, get some good discussions over what you actually know. Let the world know about what actually do be a good leader, and be expressive.

Joe: So what are your plans after school or do you hope to continue working on this project? Do you look forward to entering the industry as a professional?

Anupam: Currently I am in my final year, it will be one year until I join as an industry professional. I will be for sure moving forward to taking up a job in the industry for the same software developer role. I am also actually have research prospects which I might do like pursue my masters after some time, doing as a... Working as industry professional. I'm... I have actually published a research paper on sort like going for a research intern for the seat.

Anupam: So in the longterm plan, I actually want to make a SaaS based product of my own, which actually people use it. So currently I've been making a projects which are used not much by the people like it's just being live and let people see it. Some kind of project that's like exist. I actually want to make a project which actually ditches to a good amount of people and they actually use it in their daily lives. And coming to this project, HoxNox itself. So I made it actually a year or two years back after that I didn't get a good amount of time to maintain it. I may be come up a with a complete new version of it, completely new HoxNox, which is still a portfolio generator but completely better than what it now is.

Joe: So you said you've done some research. What was the topic of that research?

Anupam: My research was in the field of natural language processing but a topic of the paper was video summarization using text-based summarization techniques. So it was like we had this task of summarizing a video, and how we did approach towards it was that we took the subtitles of the video, we summarized them and created a new video out of it. But it was not limited to just this. The research part was that we had to analyze the different algorithms which are currently there and we used ensemble technique over them and compared the results which were coming out of them. We took non vetted combinations, vetted combination, generated a lot of amount of results. Then compared which one performs better, you're actually able to get some good results which were good enough for us as a students who are working on such kind of project for the first time under the guidance of our professor.

Joe: Very interesting. Is that a research area that if you continue with your masters you'll continue to pursue or are you thinking of going into other topic areas?

Anupam: If I pursued. my masters The area of natural language processing will be for sure my area of which I will pursue it.

Joe: So I want to ask you one more question, actually two more questions about Heroku. What is your favorite part of Heroku or favorite feature and then is there something about Heroku that you would change?

Anupam: The my favorite part is still deploying by the way of git push heroku master, that just actually does the work completely magically, and I don't ever need to take care of much of the things. At the same time, I can't say like it's not preferred or it's something bad, but it's like this command when it fails it doesn't give you much of a pleasure because you might have created a mistake in a configuration file. Maybe there can be a better way of creating the configuration files for the project. Like if I have to host a Django app, I go about checking the blogs and then clear the files myself, if there is a better way for it, I'll be very much happy to host my Django as much more easier.

Joe: I always say the best kind of configuration is the one you don't have to. Right. So maybe we should do a better job of doing things for you. That's always an option.

Anupam: Yeah.

Joe: Cool. Well thank you for being here Anupam.

Anupam: Thank you very much for having me here. It was actually very much nice to talk about my first project and the complete how I used the student developer pack and the Heroku tool in it.

Joe: If you would like to learn more about the GitHub student developer pack program, we have a URL in the, in the notes, it's education.github.com/pack. If you register for the program and for this offer with Heroku, you're eligible to receive a one free Hobby dyno for up to two years. And so this is a great program that helps students use the same tools as professional developers, and we really encourage people to give it a try. So thank you again for being here, and thank you for listening.

About code[ish]

A podcast brought to you by the developer advocate team at Heroku, exploring code, technology, tools, tips, and the life of the developer.

Hosted by

Avatar

Joe Kutner

Java Language Owner, Heroku

Joe is the Java Language Owner at Heroku. He is the author of the Healthy Programmer, and a co-founder of buildpacks.io.

With guests

Avatar

Anupam Dagar

Undergraduate Student and GitHub Campus Expert, Indian Institute of Information Technology Allahabad (IIIT Allahabad)

Anupam is a student and a GitHub Campus Expert at IIIT Allahabad in India. He is also a full-stack developer & an active opensource contributor.

More episodes from Code[ish]