Category Archives: Jobs

My Journey Of Learning Programming Through Flatiron School #8

My name is Mason Ellwood and I’m currently working on Flatiron School’s Online Full Stack Web Development Program. Each week, I’ll be writing about my experience, what I’m learning, and tips on learning to code.

In the simplest terms that I can think of. To me, programming workflow (if you look at it in a broad sense) is very similar to a game most of you have played once in your life.

I know it is probably not the same one you have played when you were a kid, but bare with me. So with this game, you have a beginning point. to. You have to navigate through the different options (or pipe placement) to reach the outcome you want, the purpose. With this you can can navigate to the same end point in a few different ways, but all reach the same conclusion. Or they will navigate away from the expected output to a defined end point, where you have to either start over, or travel to a different outcome. As a programmer you have to be able to envision all possible outcomes from a single start point and what conditions need to be met to retrieve the outcome you want to meet to proceed.

Conditionals are one of the foundations of programming. If “something” is met, then do “something” else, and travel through the possible outcomes to reach the user’s goal.

Ruby conditional’s control the flow of the program that you are building. This includes if, else, and elsif.

This workflow looks something like this:

  • If (condition to be met)

    • code to run if condition is met
  • else
    • code to run if condition is not met
  • end

 

You can also add an elsif statement, which creating more conditional statements that could possibly be met. You can add as many elsif statements as you would like.

The control flow structure is a language feature which disrupts the normal progression to the next statement and conditionally or unconditionally branches to another location in your source code. This is controlled through if, elsif, and else returning true or false.

So far with the school I feel I have made some real progress. The school has been very enjoyable so far and I am learning and grown as a programmer immensely. When I started, I thought this would be very similar to other web courses I have gone through, which I am very grateful that is not the case. The Flatiron School really pushes you to think, and allows the student to write many different options for an acceptable correct answer.

Each lesson is setup with its own test suite, that basically checks that the output of your methods are correct but leaves it up to you to figure out the best possible way to retrieve and display that value. I have a long way to go, but I am amazed by the progress I have made so far and really looking forward to the other sections I will be dealing with soon.

Read More at My Journey Of Learning Programming Through Flatiron School #8


Source: Web Design Ledger

How To Boost Your Freelance Web Design Career By Building a Network


Hey there freelance web designer – you’re leaving money on the table!

We all know about the struggles of starting a career in freelance web design. You’re probably not aware of the right places to look for work, you might be underselling your services – maybe even working for free to build up a nice portfolio. You still have to build confidence to start charging a decent rate. It’s tough, but we keep at it to be able to succeed when we’ve built a good name for ourselves.

Eventually you learn – you start making good contacts and the work starts rolling in. If you’ve worked hard enough and made enough good contacts, you might now start to struggle in a different (much more positive) way.

You start to struggle to fit all of the work you have in your day. And this is the point where you start leaving money on the table – you start to refuse work simply because you don’t have enough time to service all of your clients.

Yet – it doesn’t have to be this way – there’s a little trick we’re going to show you today which will boost your freelancing web design revenue. At the same time, done right, you can possibly starting working less hours rather than more.

The dangers of refusing freelance web design work

If you’re in a position that you are struggling to keep up with work coming your way – well done! You’ve done such a great sales and marketing job, that clients are clamouring to get just a little bit of your time.

It’s a fantastic position to be in. One that most of your peers envy.

You’re not only filling all your hours – you can actually start choosing who to work with or the jobs you take.

If there is a client or a job which you don’t want to work on, do a little magic with the numbers when writing your web design proposal. Double or triple your rate – that way, your client will either get discouraged by the price. If they’re not sufficiently discouraged you’re going to get a nice windfall from that client or piece of work.

You’re not refusing outright a job which you’d rather not be working on. You’re just earning more money from it.

You can actually start charging better rates overall should you want to. That will automatically shrink your client base, because the ones who might have initially been attracted to your (cheaper) prices would now start shirking away.

There is a problem with both these approaches though.

They work well as long as there is a bounty of work. If times get tough, you will have alienated quite a few of your clients. These clients would by then have moved on and you’re unlikely to win them back. The fact that you snubbed them when you had better clients or jobs will be a turn off to them, even if you actually ask them very very nicely.

Let’s face it, they’ll think, if you snubbed them once, you’ll do it again.

So what’s a better approach?

Don’t refuse them – outsource the work to your own network of web design freelancers.

Establish your own network of web design / development freelancers

Whilst building your own network of clients, there is another piece of networking you should be doing – establishing a network of freelancers which operate in the same or similar niches as you do.

If you’re a web designer, you should network with:

  • Other web designers for when you are overwhelmed with work
  • Web developers for when you need to customize stuff
  • Designers for all creative work
  • Photographers / video or other online content providers

You get the idea.

Same goes for any content writer or anybody working in a niche related to the web design niche. Network with freelancers doing web design so that you’ll be able to take all of the work which comes along.

That way, when and if a client comes for the full package, you can provide them with the all of the services they need.

Heck you can even actually pitch a whole package if you see that your client has that specific need.

Stop doing the work you hate – start working on the things you love.

We’re in the day and age of digital workers. Freelance web designers have the luxury of working from anywhere – infact quite a few of them do. More than that, you can outsource the work to countries where labour is cheaper.

That gives you the opportunity to markup the work of others. To have a bit of an analogy, in essence, you will be the Quality Assurance manager in a factory of “manual labourers”.

Or the architect at a construction site. You won’t be dumping the concrete. You will, on the other hand, be testing that the quality of the concrete is good enough for your (web)site.

Rather than being the manual labourer yourself, you define the requirements and make sure these requirements are rigorously met, on time and at the right budget.

You’re simply the project manager of the jobs you’re unable to do, whilst still doing the jobs you enjoy doing.

Use the 80-20 rule as your guiding principle.

If you are able to spend 80% of your time doing the work you love and the other 20% of your time, managing your network of freelancers, you’re going to easily double the amount of hours you could be charging for.

This will drastically boost your revenue potential.

If you do freelance web design and enjoy designing pages, but don’t really like doing coding, you’ll need to have a bunch of WordPress developers ready for hiring. You can then outsource the development work to these designers and you can keep working on work you love doing best.

How to create a network of cheaper freelancer web designers

The biggest challenge in all of this is to actually build a reliable network of web design related freelancers.

Let me tell you a bit of story.

We tend to get quite busy publishing content at DART Creations – so when we do to need development work, we typically outsource to our trusted developers.

Yet finding reliable WordPress developers was not a pleasant experience for us.

We tried hiring developers first on a few of the most popular freelancing websites out there. We set up a project and a budget and waited for the offers to start pouring in. They did of course – from all sorts of people, the ones with great reviews and exorbitant prices and the ones with fewer reviews and more decent prices.

We chose somebody who seemed to be a good balance between good reviews and prices.

Our first hiree turned out to completely “borrow” code from another plugin.

Our second hiree wasn’t very responsive – although we agreed a timeline, we had to remind, nag and eventually beg for the code to be submitted.

The quality of the resulting code left much to be desired.

They had asked for payment outside of escrow services and trying to recover any money after that mess required chargebacks on credit cards. In a few words – too much hassle.

(Lesson learnt: never make payments outside of an escrow service – even if it’s more expensive, you’re protected against poor work)

The tried and tested way to hire freelancers

1. Physical networking

Working online has it’s benefits. Yet, there is something about meeting a person face-to-face where you can make an instant judgement on whether that person is reliable or not.

Get in touch with your peers in real-life as much as possible and network. Go to web design, WordPress and development conferences – and always network as much as possible.

Don’t stick to a single group of people with whom you “make friends”. Meet as much as possible with different people, always with a lookout to acquiring new contacts.

Attend local developer meetups with the same thing in mind. Wherever there is a gathering of people who operate in your niche, go and make contacts.

2. Online networking

Whilst physical networking is great – you should still network online. Find online groups of peers. Whether your favourite online hangout is Facebook, Google+, reddit, or some forum, always keep networking online. The more groups / conversations you join, the larger the possibilities of networking.

Give back to the online communities you join.

That way when you do stuff to network, you’ll be known as “the one who helps often”.

3. Vet freelance web designers and developers before going all out

You should never assign somebody to important jobs unless you’ve already tested them out on smaller jobs.

Essentially, if you don’t know a person, you really can’t be sure about the quality of work they provide, their timeliness, their communication efficiency.

Reviews can guide you, but you’ll find that quite a few reviews might be skewed and not provide a true picture of the actual skill set of the person you are hiring.

You’ll need to slowly get to know the person you are hiring by giving them a small task. This task should not be crucial to the success of a project. It should be a piece of work which you can afford to trash and give to somebody else.

4. If you’re in a hurry – hire multiple freelancers for the same job

When you’re pressed for time with a tight deadline for a piece of work and don’t have the time to vet a new hiree, there is a tried and tested way to mitigate your risk.

Rather than hiring a single developer, you should hire multiple developers (or whatever the task you need to do is).

You’re going to pay a premium for this, but you should see this as an investment in future projects. It is also a better guarantee of a good result.

Probable scenario – one hiree does not deliver or deliver sub-par work (work is thrown away, hire is abandoned). Second hiree provides good quality work.

Best-case scenario – both hirees provide excellent quality work. You’ll still have to throw away one of the results, but you’ve found two excellent freelancers for your network which you’ll be able to use in future projects.

Worst-case scenario – both hirees deliver poor quality work. You’ll have to abandon both hirees and their work and in all likelihood you’re going to have to perform some contingency planning.

A way to mitigate the worst case scenario is give the hirees a due date which is a week or two before the project deadline. That allows you some leeway to find a replacement, although you’re going to have to pay through the nose this time to make sure the quality is top-notch and the project is delivered on time.

Make hay while the sun shines

As long as you’ve got work coming in, creating a network of freelancers working around your web design is an excellent way to boost your freelancing web design revenue. Given that they are freelancers, with no fixed commitment, you’re not risking much in reality.

It’s a win-win situation for you.

Stop leaving money on the table. You never know when the good times will dry up.

 

Read More at How To Boost Your Freelance Web Design Career By Building a Network


Source: Web Design Ledger

My Journey Of Learning Programming Through Flatiron School #6

My name is Mason Ellwood and I’m currently working on Flatiron School’s Online Full Stack Web Development Program. Each week, I’ll be writing about my experience, what I’m learning, and tips on learning to code.

Throughout my learning to program career, it seems like all I have and will be doing is learning and never actually be able to start my carrer. That seems like a stupid sentence, but a lot of the time it seems like the list of things I NEED to know does not stop. Every job listing you need to know 20 different abstract languages to even get your foot in the door, and I am constantly under qualified or lack enough experience to even land an interview. To put it frankly; that sucks. So where is the standard, what do I NEED to know, and what will actually be used on a daily basis; because if in my head I am constantly juggling 20 different language’s syntax on a daily basis, I may be over my head… I was discussing this with one of my good friends Paul Jackson who works in IT, and he helped me set everything straight. He said “If you master a language OOP (Object-oriented programming) concepts it will show in your work. Companies just want you to contribute in a certain way rather than to be an expert in all.”

As Eli eloquently touched on, most job postings come from a “pissed off IT manager” and a human resource person who both do not really know what they want. After the IT manager dumps tons of data on the human resource manager, he then writes a convoluted list of requirements that the developer needs to meet. When in actuality they only need you to do a few tasks, not all 20 “requirements” that are listed on the job posting. Thinking about the development world in this sense has better helped me personally prepare what I NEED to know to have a better chance at landing a developer job once I have completed the coursework for Flatiron Schools.

Alright let’s get into it, what is a Command Line Application! A Command Line Application, often referred to as a CLI (Command Line Interface) Application, are applications you interact with entirely through the terminal of shell. This includes no use of graphics or visual interface beyond what you see in the terminal. This birthed the software revolution!

“Write programs to handle text streams, because that is the universal interface”

– Douglas Mellroy, creator of UNIX Operating System

They are often times the most powerful interfaces you will interact with on a daily basis. This including GIT, Learn (the software Flatiron School is founded on), and Ruby’s CLI application interface. There are many more, but we will not talk about those.

So how do you use the CLI application logic with Ruby…. All files should follow a similar file structure with the top level directory being: bin, lib, config, spec, and something like app. You may also see .learn (specific to Flatiron Schools), .rspec, Gemfile, Rakefile, or program files like ttt.rb. If you are working in your terminal you can also use the bash command ls -lah which will show the list of files in your current directory, including hidden files (files starting in a period).

You can also use ls -a which displays all files including hidden files as well.

Inside the bin/ folder we generally want to place all the code that is relatable to running our actual program.

Inside the config/ folder you will place all the application environments. This includes all required files to initialize the environment of your program. These files connect to your database, and ensures your test suite has access to the files that contain the code it is testing.

Your lib/ folder is where a majority of your code lives. Within these files defines what your program can do.

Your spec/ folder is where test files go. These are written tests that makes sure your code behaves as expected.

Within the root directory of your Ruby program you may also file, if needed, your .rspec, .learn, GEMFILE, Gemfile.lock, Rakefile dependent on necessity.

Using Ruby’s CLI Application process, you are able to create dynamic programs that are able to capture user inputs to produces an interactive program. This follows a basic workflow:

  • Greet the user
  • Asks the user for input
  • Compares and stores the input
  • Do something with the input

As you can see by my beautiful artwork, running this program will first run files in bin/ and which are the instructions of how to execute. The file workflow sounds something like this.

  • Include the files need to execute (lib/hello-ruby-program.rb)
  • Greet user
  • Asks user for input
  • Captures that input using #gets
  • Uses user input to do something else, setting it to the value of name which is in the method of greeting
  • Sends that value to the lib/hello-ruby-program.rb
  • Execute method with user inputted value
  • Display return value to the terminal.

Using this logic allow users to input a value directly to the terminal, with a return value displayed to the user.

Calling the gets method captures the last thing the user typed into the terminal, which can be set to a variable. Calling gets freezes the program until user inputs some value.

Comment below if you need any further explanation on what was covered before, and I will do my best to elaborate.

Read More at My Journey Of Learning Programming Through Flatiron School #6


Source: Web Design Ledger