Tips for Translating and Porting Code

Image for post
Image for post

This week I was building out a web service. I wanted to implement a specific algorithm as part of the service, but I am a strong believer in “don't reinvent the wheel”. Surely the piece of code I needed existed somewhere and I just had to find it. So I scoured the internet and to my disappointment, I was only able to find an implementation of the algorithm in a different language. I found a Javascript implementation, however, my web service was being built on a Ruby framework. Then this got me thinking about translating or converting code between languages.

Translating

So my first thought was, maybe there is something like Google Translate out there but for programming languages. …


Drawbacks of Recursive Solutions

Image for post
Image for post

When it comes to practicing data structures and algorithms, I often find myself avoiding recursion. Recursion is not my favorite and it's definitely not a strong point. But we have to practice to get better, so I’ve been doing just that.

Recursion is a repetitive process in which a function calls itself.

In recursion, you will see the function calling itself inside the function. To write a recursive solution to a problem, you need these two steps:

  1. Design the base case that will stop the function from calling itself
  2. Design the procedure where the function will call itself (possibly with modified…


7 Goals for 2021 As I Continue My Software Journey

Image for post
Image for post

We did it! We made it to 2021! A brand new year filled with potential and hope. About this time last year, I had decided to do a career switch and join the world of software development. The past year was spent working hard, learning, and meeting new people. I am very excited to continue this journey. The start of the new year allows for some time for reflection and realigning our goals. …


DogFooding in Tech: Pros and Cons

Image for post
Image for post

In my last blog, I mentioned “dogfooding”. I came across the term while researching different types of testing and was intrigued. What a silly term!

What is Dogfooding?

Unfortunately, this has nothing to do with the cute furry animals. “Dogfooding” refers to when the employees of a company use the product. For developers, it is the practice of using the very product or service you are building. Basically, it's a way of doing internal user testing with the developer pretending to the user. You might also hear it being mentioned as “eating your own dog food”. Yuck…

Dogfooding occurs for two main purposes. It has benefits in both marketing or advertising and in testing. For marketing and advertising, employees are encouraged (or required) to use or subscribe to the product or service of the company. For testing needs, the dogfooding phase has the purpose of detecting immediate bugs and to get feedback from colleagues. …


Feature Rollout and Release Strategy in Software Development

Image for post
Image for post

Have you ever started to answer a question is an interview and you can just tell you are missing something? Your answer might not be wrong but you get the feeling its not exactly correct either… Its ok, it happens. As a junior software developer, new to the industry theres bound to be aspect of the industry I’m not familair with yet. But, when I come across a new topic I make sure to read up on it so I’m ready for the question next time.

I was asked at an interview: “What steps would you take to implement a new feature? How would you validate engagement and success?” I answered the question talking about testing and the developement lifecycle. However, I could tell I was missing some key knowledge. What I should have talked about instead is a feature rollout process or release strategy. …


3 Steps to Change Class Components Into Functional Ones

Image for post
Image for post
React Hooks

While coding this week, I had to convert one of my class components in React to a functional component. Why would I need to do that? After all, the parent component sees the two types of components as identical. Sure, functional components can be shorter, require less boilerplate, and maybe even perform better. But that's not why I needed to do it. I was using an npm package that had React hooks and hooks are for functional components only. React Hooks, added in React 16.8, allow functional components to manage state and replace lifecycle methods. …


Learning Python and the Significance of Whitespace

Image for post
Image for post

This week was spent learning a new language, Python. It's a fairly easy language to pick up but one thing that's been interesting and new to me is the use of whitespace in Python.

“In computer programming, whitespace is any character or series of characters that represent horizontal or vertical space in typography.”

Up until Python, I’ll admit, I hadn't given whitespace much thought. In general, I thought the compiler didn't care too much about whitespace. Sure, it's necessary to delineate keywords or names of variables, but otherwise, it was optional in the languages I was programming in. …


Javascript Solution to LeetCode Problem

Image for post
Image for post

This week my focus has been on practicing my data structures and algorithms. After completing many problems, patterns start to arise. The given problem starts to remind you of another solved problem and this makes it easier. The more you practice, the more styles of questions you will have seen, and the greater the chance you will be able to use your past experiences to help you. Here is an example of how that played out:

Problem: Binary Tree Level Order Traversal

This is a LeetCode medium difficulty problem. Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level). …


5 Reasons To Have A Portfolio as a Junior Software Developer

Image for post
Image for post

Last week I finally got around to creating my portfolio website.

When researching software developer portfolios, there are many examples online and a lot of information on how to make one and what you should and shouldn't include. But why should I make one? Do I really need one? Truthfully, I had been putting it off. I didn’t see real value in making it. Would I just be putting more useless content out into the internet? There is already so much clutter out there. How is it going to be different than my resume? It will end up having most of the same content anyway. Lastly, I am not a UX designer, and I prefer back-end to front-end software development anyway. …


What to do if you accidentally publish your API key

Image for post
Image for post
Source

Last week while coding, I came across a small project I had been working on long ago. I decided I wanted to revive the project and continue working on it. The project was in its very early stages and I figured I’d make a repo on Github and push the code up before I added to it.

As soon as I pushed my code up to Github, I received an email from Google Developer Services that said “We have detected a publicly accessible Google API key”. Oh no!! Somewhere in my code, I had a google API key that I had not hidden. …

About

Sara Khandaker

I love seafood, exploring new cities, board games and learning to love to code. https://github.com/sarakhandaker/portfolio

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store