Tag Archives: computer science

Image by Donna Cleveland (modified)

5 Reasons to Head to a Tech Conference

Spring and summer tech conferences are just around the corner. Here’s why you should consider looking for a tech conference near you.

1. New Ideas, New Inspiration

Whether you’re still in school or an experienced computer scientist, there’s always something new to learn. Tech conferences are great places to share ideas and get inspired. At a tech conference last year, I learned about the origins of the game Portal and also heard a great talk about approaches to innovation. Chances are that you’ll walk away with renewed purpose, a new project in mind or a new subject that you’d like to research.

2. Build Your Network

Networking is easier than ever with the help of sites like LinkedIn. You can use LinkedIn to expand your connections, but it’s great to meet like-minded students and professionals in computer science at a conference too. Some conferences have built-in networking sessions, so always check the conference agenda and make sure you bring your business cards. It’s nice if you have a networking goal in mind (ex. “I want to meet people who can tell me more about cyber security” or “I want to learn how to volunteer my time to a computer science related cause”), but also remember to keep an open mind and embrace learning opportunities in all their forms.

3. Represent Your Organization

If you’re a student, you can represent your school and possibly your school’s computer science club. At local conferences, younger students may look up to you to learn about your experiences and consider attending your school in the future. You can also exchange ideas with fellow students about computer science related activities and events. Professionals can represent their company in its best light and meet potential recruits, business partners or clients.

4. Stay Current

Conferences often have specialized sessions or lightning rounds of discussion topics. These are great ways to stay up to date on what the latest tools, challenges and breakthroughs are in a particular area. It’s a good idea to have a pen and notepad handy for any keywords you might want to remember for later. You can view these sessions as networking opportunities as well – chat with the person sitting next to you, ask a question if the moment is available, or talk to the speaker after the session.

5. Jobs and Internships

Finally, anyone looking for a job or internship has much to gain by attending a tech conference. The conference may have a career fair, in which case you can make use of the time to talk with companies, ask questions and hand out your resume. If you know certain companies will be at the career fair, take the time to do your research beforehand so that you can show how and why you’re interested in a particular company. The conference may also offer resume reviews, mock interviews or advice sessions on finding a job or internship. Don’t overlook the influence of a great conversation though: while you’re networking, mention if you’re looking for a job or internship.  The person you are talking to may not be able to offer you a position, but they might be able to point you in the right direction.

Here in the Portland metro area, the Northwest Regional Women in Computing conference and the ACT-W Portland conference will be held in mid-April, and scholarship applications to the attend the Grace Hopper Celebration are due on April 15th.


Interested in going to a tech conference but not sure about all the crowds and high energy? Rest assured that it’s not just you! Check out An Introvert’s Guide to Tech Conferences.


Image by Donna Cleveland (modified).

Image by miss karen

The Legacy of Grace Hopper

How much do you know about Grace Hopper? In celebration of Women’s History Month, here are some discussion questions to accompany The Queen of Code, a short 15 minute documentary released earlier this year by Gillian Jacobs.

  • What did you know about Grace Hopper before watching the documentary?
  • After watching the documentary, what surprised you most?

“I’ve driven a large number of people at least partially nuts. After all, insisting on talking to computers in plain English was a totally ridiculous idea and you couldn’t do that. Except it worked.” – Grace Hopper

  • Have you had a similar experience where someone thought your idea was totally ridiculous? What happened? What are some constructive ways to approach these kinds of situations?

“Even though she was a trailblazer, she never admitted that a trail needed to be blazed. She was very interesting in that respect.” – Kathleen Williams, Grace Hopper Biographer

  • How would you describe a trailblazer? To what extent should trailblazers advocate for others to follow in their stead?
  • How do you feel about having or needing role models to look up to?

“She’s like an Edison…like a Turing…and yet Hopper isn’t in those names in the history books and it needs to be and that’s one of the things we can fix.” – Megan Smith, Chief Technology Officer of the United States

  • Who are the most famous people in technology that you have learned about? What are some ways we might help others learn about people like Grace Hopper and the ENIAC women?

“One phrase I’ve always disliked is that awful one: “But we’ve always done it that way.” That’s why I kept that backward clock in my office.” – Grace Hopper

  • What is one way that you can incorporate your own “backward clock” into your life?

Image by miss karen.

Image by Bernard Goldbach

What Programming Teaches Us About Failure

Most programmers will tell you that they did not write a working program – or even a working function – on their first try. It often takes multiple attempts and revisions before reaching success. What do I mean by success? There are multiple ways of looking at success too, but today let’s talk about failure.

We tend to celebrate successes and sweep failures under the rug. As programmers,  we should examine failures more closely.

Squashing the Bugs

What do you do when you hit ‘build’ and your program has errors, or when your program runs but it’s buggy? Some people might bang their heads, feel frustrated or angry, and not care as much about trying to solve the problem. Others might be still frustrated but even more determined to smooth out all the wrinkles. Fixing bugs teaches us that it takes perseverance to pinpoint a problem and find a good solution. Mistakes along the way become an expected part of the problem-solving process.

Proactive Programming

You know how your program works and how to properly use it. Another person might not. Testing our programs and proactively coding against possible user errors helps the program run properly – it is also a valuable exercise in empathy. Preventing program failures partly means learning to imagine the ways that many different people might approach the program. In doing so, it is easier to create something that other people will find enjoyable to use.

Adopting a Growth Mindset

Think about something you do well. After a few months of programming, concepts like for loops probably seem like no big deal, but they probably weren’t as easy the first time. Learning to program involves making countless mistakes and learning from them along the way. Over time, we develop logic skills and knowledge that helps us learn more quickly. That knowledge was very likely acquired rather than a result of inborn talent. Programming is an example of how we benefit by embracing failures as challenges waiting to be solved, by approaching unfamiliar topics as something to yet be learned, and by seeing perseverance and effort as the keys to mastery.


Image by Bernard Goldbach


For more information about the Growth Mindset, see this video and other works by Stanford professor Carol Dweck.

Image by Alexander Scheffelaar Klots

Taking Your Coding to the Next Level

You’ve done the Hour of Code and Codecademy, or maybe you’ve taken a couple formal intro classes. Now what? Here are some great resources for staying sharp and taking your coding to the next level.

Code School

Pros: Code School offers fun-themed, polished instruction videos and exercises for Ruby, JavaScript, HTML/CSS, iOS, Git and electives like using the Google Drive API. The developers at Code School are constantly rolling out new content covering topics like Angular.js, Node.js and Express.js. These courses assume you have a basic understanding of the programming language at hand.

Cons: The iOS path has a course on Objective-C but not Swift, though the developers have blogged about Swift and it seems they’ve got a course in the works. If you’re not looking to learn about web technologies, however, this site won’t be very useful to you.

Cost: $29/mo individual subscription

Treehouse

Pros: Treehouse is track-based like Code School, but offers additional topics like Android development, PHP, Python, WordPress and even a track on how to start a business.

Cons: If you want access to industry talks, interviews and workshops, you’ll need a Pro account at double the cost of a basic subscription.

Cost: $25/mo individual basic subscription

PluralSight

Pros: If you’re interested in more than just web technologies, PluralSight probably has you covered with its 3500+ courses. There are some learning paths but the site is largely geared toward current professionals who might be preparing for a specific certificate or who need to learn a very specific topic. Here you’ll find videos on .NET, C#, databases, SQL, and methodology-based courses like agile and unit-testing.

Cons: There’s much less hand-holding on PluralSight, so it’s probably useful if you have an intermediate-level understanding of programming basics and/or are very self-directed. PluralSight videos aim to teach you what you need to know without fancier things like themed learning paths.

Cost: $29/mo individual basic subscription ($49/mo subscription for access to exercises, pre-/post-assessments and certificates)

TopCoder

Pros: TopCoder posts challenges in the major areas of design, development and data science for programmers to compete to come up with the best solution. This is a great place to show off your skills, potentially win prizes and get noticed by companies. Some companies use this site as part of their technical interview.

Cons: TopCoder doesn’t have courses to explicitly teach you skills. Rather, you can learn by taking on a challenge and doing your own research about the topic.

Cost: Free!

HackerRank

Pros: HackerRank easily lets you practice coding (from late beginner skills onwards) in over 30 programming languages. This is a great place to sharpen your skills in algorithms, artificial intelligence or functional programming. HackerRank consists mostly of exercises but has some tutorials like Linux Shell/Bash and Python. The farther up you move in the ranks by completing challenges, the more you could also get noticed by companies. Some companies use this site as part of their technical interview.

Cons: For the most part, HackerRank is more about completing challenges and teaching yourself something along the way. Let StackOverflow be your friendly companion; the forums specific to each challenge have some handy tips, too.

Cost: Free!

 


 

Why do I list having to teach yourself without formal video tutorials as a con? I wrote this guide with the beginner/intermediate programmer in mind – someone who probably considers themselves a student and isn’t used to the fact that ‘learning by doing’ can also mean solving a challenge by looking up lots of bits and pieces on the internet whenever you need it. You won’t have all the information you need all in one place: I think this is a good thing and more representative of what it’s like to be a programmer on the job. If you’re not used to taking the initiative to find a new tool or feature of a particular programming language, sites like TopCoder and HackerRank can make you feel like you have little direction. If you feel this way, I encourage you to dive in with the mindset that you now have more freedom to choose your direction and how you find new things to learn.

Happy coding!


Image by Alexander Scheffelaar Klots

Photo credit: Michael Josh Villanueva

Holiday Gift Guide: the TechReads Edition

It’s that time of year! As you compile your list of gifts for your friends and family this holiday season, consider these ten tech-related books.

For the Visionary:

The Innovators: How a Group of Hackers, Geniuses and Geeks Created the Digital Revolution by Walter Isaacson

This book is great for someone who values history as a way of appreciating what we have in the present, as well as a way of imagining how to keep moving forward. You’ll find no Great Man Theory here: in this book, Walter Isaacson, who also wrote Steve Jobs’ biography, explores how collaboration between many talented people brought about the digital age.

The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses by Eric Ries

If you know someone who dreams of (or is currently) starting their own business or launching a new project, this book provides scientifically-grounded advice on how to succeed. Even if someone doesn’t consider themselves an entrepreneur but is excited about innovation and staying on the cutting edge, this could be a great read.

For the DIY-Lover:

Zero to Maker: Learn (Just Enough) to Make (Almost) Anything by David Lang

This book would be great for that person who’s always tinkering around, taking stuff apart or trying to invent something new. They’ll find plenty of insights in this book before putting it down, ready for another experiment with renewed inspiration.

For the Gamer:

Ready Player One by Ernest Cline

This book is commonly categorized as young adult fiction but would also be an enjoyable read for any adult who wants to reminisce about videogames and 80’s pop culture. Ready Player One takes place in a world where much of one’s life can take place in virtual reality; the founder of this virtual reality has left his fortune to whoever can solve a series logical puzzles and riddles in a 80’s-themed quest. The mission becomes not only to win a fortune but to determine how this virtual reality will be used to affect the rest of the world.

For Job and Internship Seekers:

Cracking the Coding Interview: 150 Programming Questions and Solutions by Gayle Laakmann McDowell

With examples in Java and C/C++, this is a book for someone who has had at least one year of coding experience and is looking for a job or internship in software development. One of the best features of this book is its detailed solutions at the back of the book. Even seasoned developers looking to change jobs might benefit from this book, as some of the examples are rather tricky/advanced.

Women in Tech:

Lean In: Women, Work and the Will to Lead by Sheryl Sandberg

Some of you might be tired of hearing this recommendation, and that’s okay. For those of you who haven’t heard of Lean In, this book is an inspiring call to action by Facebook’s COO to be better role models and foster empowering environments for women in the workplace. While not focused exclusively on the tech industry, there are plenty of insights here that, if anything, are even more appropriate. A new edition, Lean in for Graduates, was released this year.

Pioneer Programmer: Jean Jennings Bartik and the Computer that Changed the World.

This is the only autobiography in existence by one of the six female computer scientists who in 1946 programmed ENIAC, the world’s first all-electronic, programmable computer. Bartik, who led the team, sheds light on an oft-forgotten part of computing history and writes about what it was like to be a female pioneer in computer science. For more biographies on women in computer science, I would recommend researching Ada Lovelace and Grace Hopper.

Other Biographies:

Steve Jobs by Walter Isaacson

If you know someone who loves Apple products and would love learning about the life of its co-founder, this biography is a no-brainer. Walter Isaacson writes about Jobs’ personal and professional life, bringing to life one story behind the cultivation of this well-known company.

Alan Turing: the Enigma by Andrew Hodges

Alan Turing was a brilliant mathematician who developed theories for computing that heavily influenced the progression of computer science. Among many things, he developed the Turing Test which continues to play an important role in the study of artificial intelligence. An fyi: this book is on the lengthy side (about 600 pages).

Let’s Talk Tech and Psychology:

The Most Human Human: What Talking with Computers Teaches Us About What It Means to Be Alive by Brian Christian

This would be a great gift for someone who enjoys psychology and philosophy in addition to a love of technology. What does our view of computers say about our view of humans? This book is sure to generate an interesting discussion.


This is a special edition of TechReads, my series of technology-related book reviews. If you would like to suggest a book for a future TechReads article, please leave a comment below.