Published on September 2nd, 2016 | by Sunit Nandi
4Resources I used to ace my undergraduate college degree in Computer Science and Engineering
I know for certain, that if you are reading this and you are in college studying for your Bachelors or Masters in Computer Science and Engineering (or related fields like Information Technology), you’ve probably realised by now that college life can be tedious. Not only do you need to deal with theoretical studies and labs, but also figure out how to deal with internships, projects and term papers. And god forbid, if you are also working on the side to pay your college bills, the time on your hands is reduced to nothing but a squeeze.
This year, I passed out of college with a Bachelors degree and a decent score. So, while I sit back and reminisce about those golden years, let me also share with you some resources I used to make college life a tad bit easier.
1. Atom text editor
Many of you may already know about it. It is a text editor developed in Node.js by the team at GitHub, Inc. Atom is cross-platform and runs across Windows, Linux and Mac. It also includes robust highlighting and autocompletion, multi-pane support, file system browser and regex-based search and replace. But what really steals the show about this editor is that its infinitely extendable package support. The Atom community publishes thousands of packages, and some of them have features unimaginable to most people. Whether its adding CLI/terminal support or adding IDE features for PyQt, the collection of packages available to be installed makes even mainstream IDEs like Eclipse and Netbeans look like mere toys. Another worthy mention is that Atom supports code versioning using git and GitHub right out of the box. I found writing programming assignments on Atom is a breeze and I’d recommend it to any CSE student.
2. Git
Git is a code versioning system developed by the creator of Linux, Linus Torvalds. You may be wondering, why Git? Well the answer is, checkpointing your work. You can use it to save states of your work using “commits”. That way if you ever need to go back to a version of your code that worked before you added something new that broke it, then you can always roll back to a previous commit, without having to remember all the way what to delete. Git has immensely helped me while coding my software engineering project in my 3rd year. You can also selectively pick commits and add some changes to your work while ignoring the ones you don’t need.
Apart from that, the distributed nature of Git makes allows you to collaborate on group projects with ease and without the worry of file conflicts between participants. Are you looking for more reasons to Git? Well, one, you can use Git to publish your project/assignment solutions on GitHub to impress future employers or increase your chances of joining a top tier institute/university and two, software and firmware companies use a code-versioning system, and so, you better if you are equipped with the knowledge beforehand.
3. Master PDF Editor
It is one of those handy tools you’d be thankful that it existed. While most PDF editors are expensive, clunky and only available on Windows, Master PDF Editor is opposite to all of that. This PDF and XPS document editor runs on Windows, Mac and Linux, removing all compatibility issues, and also packs in the entire featureset of any industry-leading proprietory editor. Not only you can edit text and images, annotate, split/merge, sign and encrypt PDFs, but also fill forms out, even when they don’t have PDF interactive fields. I used it extensively to fill out internship forms, bank forms, feedback forms, tax returns and what not. Most of the features are available for free, while some less used features are in the Pro version. I suggest you to buy the Pro version if you can afford it (it is only $50) to support the devs who are working hard to provide a free cross-platform alternative to expensive PDF tools.
4. CometDocs.com
CometDocs.com is a one-click, web-based solution to convert between document formats like PDF, DOC, PPT, XLS, XPS, etc. The fact that it works across all devices irrespective of platform, makes it so appealing. The free service is good for occasional document conversion. But at times when I need to convert a lot of documents, I purchase the $9.99 plan for a month to get my work done without paying for expensive software (that again runs on Windows only). It has helped me a lot, especially when I was required to convert a bunch of PDFs to Word format to extract the text and images I needed to use in a term paper.
I also have their PDF to Word Converter Android app on my phone for one-off document conversions.
5. WPS Office
Developed by Kingsoft in China, WPS Office is one of the best free alternatives to Microsoft Office available now. It runs on Windows, Linux, Mac, Android and iOS, making document editing truly cross platform. Whether you are on your PC, or a Linux workstation or on your phone, you can edit documents exactly the same way on all of them. Moreover, it is less bloated than Microsoft Word and preserves its core features like Writer, Spreadsheets and Presentation. The Microsoft Office compatibility is also pretty superb. Documents edited on Writer and Word can interwork and not lose any formatting. Interoperability on other Office alternatives like LibreOffice with Microsoft Office is still a hit and miss. WPS Office is one tool you can safely bet on, if you are a Linux user or you cannot afford Microsoft Office.
6. TeXstudio
Most colleges and universities encourage their students to write term papers, reports and project submissions in LaTeX. It is actually a good practice. With LaTeX, you can control page properties by simple commands and write in a well-defined markup language without worrying about the appearance. LaTeX handles all of the document management and presents you with beautiful-to-read papers. Not just that, but also has inbuilt support for multilingual fonts and fonts for mathematical equations. The only drawback of TeX is that, to preview the output, you need to compile and then view the generated PDF separately.
TeXstudio is an IDE for LaTeX, that solves the problem by providing an appropriate user interface. The interface has 3 panes. The left one shows the current directory tree, the middle one is where you can type TeX code and the right one has a preview of the document that gets rebuilt the time the user presses the ‘Build and View’ shortcut key. This 3-pane setup provides a near ideal environment for writing and handling the workflow as the user types out his/her document. Apart from that, it has the usual highlighting and autocomplete features, macros/snippets support, wizards for bibliography and more.
TeXstudio has made writing my project reports and term papers a lot easier. I now find it more comfortable to use compared to any office suite in these two cases.
7. EduBirdie
There have been two cases in college where I was unable to manage assignments properly. In the second year, I had Economics as a subject. Our Economics instructor decided to give us an assignment which involved writing a 50-page report just 5 days before the final exams. In the third year, our Analog Electronics instructor made us prepare a 30-page long essay just 3 days before the exam. What do we do in such a situation? Study for the upcoming finals or work on the essays? The sad part is that there are many faculty members who think that their subject is the only subject worth studying and rest of the course is irrelevant. How do you deal with such people?
Fortunately services like edu birdie are a godsend in such tight scenarios. You can get your high-quality custom essay written by professional authors. You can also provide rough points to be made into a good essay or even get your own work proofread. The pricing is relatively high for people like me in South Asia, but when one gets a good quality essay checked for factual accuracy and plagiarism, which ensures a good grade on the subject, the service is well worth it.
So, yes, you have understood it right. I simply got my essay written by a writer and submitted on time to get an A+. I spent the time I had to study for my finals instead.
8. Credit/prepaid card
Now you must be thinking that I am joking. Well, to be honest, credit and prepaid cards are financial products can be a powerful tool or a livelihood destroyer depending on how you use them. Compared to debit cards, credit and prepaid cards are more widely accepted on the Internet and various vendors. Credit and prepaid cards can be charged offline, whereas debit card payments need to be settled at real time or they fail. Moreover credit cards can have a maximum credit limit and prepaid cards are limited by the value loaded into them.
The ability to charge credit and prepaid cards offline come handy in some cases. For example, I once purchased electronics for my project from a vendor in Singapore, who only took my card number, expiry date, name and signature written by hand on a piece of paper faxed to them. In another situation, while submitting a paper to an IEEE journal, I also paid the publication costs in a similar manner over fax, as web payments are not supported by them. No CVV is required and the payment is processed as a card-not-present POS transaction. This does not work with a debit card, as most banks often reject such an offline charge, assuming that a fraud can occur if they have have access to the funds in the entire account as opposed to a set limit.
A credit card specifically gives you even more advantage if your college or another party is sponsoring your project. For example, if you are buying components for your hardware project, you can buy them on credit and then send the credit card bill for reimbursement. Not only do you send one specific bill that lists all purchases (ensuring clairity in expense statements), rather than a bank statement (in case of a debit card) with a mix of credits and debits, but also, your money never leaves your hand if your sponsor pays on time. With a credit card, you don’t need to empty your pockets buying components and wait an entire month being cash-strapped for your sponsor to release the funds.
I have an ICICI Coral Credit card that I got after opening a fixed deposit with ICICI bank. If you live in India like me, getting a credit card from ICICI is relatively easy compared to other banks. If you are from the US or UK, you can check out prepaid cards, unsecured credit lines and cash advance options from Check Into Cash.
9. Beaglebone Black/Raspberry Pi
Single-board ARM computers like Raspberry Pi and Beaglebone Black are very versatile little devices. They are fit for most college projects and experiments. Whether it is running a small web or media server to acting as a controller for electronics and motors to IoT, they perform the job pretty well. Gone are the days when one needed to burn ROM chips for programmable ICs or flash firmware to a microcontroller. Today these small ARM computers sized about half of a human palm run full fledged general purposes OSes like Linux, BSD or Windows and are programmable with general purpose programming languages and scripts like C, C++, Java, Python, PHP, etc. They pack CPUs running at 1GHz+ and 512 MB or more RAM and cost only about $25 to $60. I have used my Beaglebone Black in various hardware projects and it has reduced my need to code in exotic languages like Embedded C or TinyC.
10. Virtual Private Server (VPS)
Last but not the least, a VPS is an extremely handy tool for a CSE student. A VPS is a virtual machine sold as a hosting applicance by an Internet hosting service. It provides all the software flexibilities of a full physical server as it runs its own copy of the operating system. However, since the computational resources are shared, lots of users can have a VPS on a full physical server and so the cost per VPS is very less. Most VPS plans start at $3 to $5 a month, which means they are very cheap.
VPSes are helpful for a CSE student in many ways. You can use them for hosting and testing out your developed web applications and software projects. Since they are hosted directly on the public internet, it is easier to study how they will perform in real life scenarios. Also, since VPSes give you full flexibility on software choices, you are not stuck to one programming language or database like PHP-MySQL. You can choose any programming language (Python, Java, Node.js, Go) or data store (PostgreSQL, MongoDB, RethinkDB, etc.) to design your application.
If your hosting provider permits you, you can also install OpenVPN on the VPS to browse the internet securely (and without any censorship or blocking) from your PC. This way you no longer need to waste time looking for proxy servers to get past college restrictions for internet access, whether for accessing social media or downloading large files. You may also install a rTorrent- or Deluge-based BitTorrent seedbox to download and seed torrents without involving your PC or college internet connectivity in peer-to-peer connections. The torrent files get downloaded to your VPS, which you can fetch using FTP, HTTP or SFTP. A VPS can also be used to run bots and collect data from social networks, network stats, IoT sensor nodes, etc. without dealing with the restrictions usually imposed on college internet access.
You can even use your VPS to host an internet radio station, a game server or Git server for project collaboration. The possibilities are endless.
Amazon EC2, Google Compute Engine, DigitalOcean and Linode are some popular VPS hosts. However, if you can forego some of the “cloud” management capabilities, you can settle for cheaper (and sometimes even faster, compute-wise) hosts like HostSailor, Vultr or x10VPS.
Conclusion
So here’s my complete list of resources that I used at college. Not only they made my life easier, but also made me resourceful and gave a big boost to my scores as I used the extra time I gained for self-study. I sincerely hope my ideas could help a fellow student cope with the pressure at college.
Have any more ideas in mind or resources that you used in college? Let us know in the comments below.
4 Responses to Resources I used to ace my undergraduate college degree in Computer Science and Engineering