Software Development and Programming Careers (Official Discussion Thread)

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,292
Reputation
5,551
Daps
83,491
Keep it up bruh. The process is put as many projects up as possible and spread to as many recruiters/openings as possible. Also getting your linked in out there is crucial. The shot gun approach is where it's at when starting out.
 

Double J

Banned
Joined
May 11, 2012
Messages
1,929
Reputation
-655
Daps
5,264
Went to a couple meetups for the first time this last week and got a lot of employers interested.

I showed them my github and while it doesn't have any finished projects they were feature heavy and sitting around the 75% mark. They really didn't seem to mind because they were overall impressed by the coding style.

Hopefully I can land a job or two, they're really pushing for me right now. A few of them were even like "Are you sure you don't mind if we don't code in Functional Programming?"

Really appreciate all the help in this process coli fam.
Do you have a degree? If so in what?
 

TrebleMan

Superstar
Joined
Jul 29, 2015
Messages
5,592
Reputation
1,180
Daps
17,541
Reppin
Los Angeles
Do you have a degree? If so in what?

No degree.

I just really made an emphasis in self-teaching myself the languages, the surrounding technology then familiarizing myself with it's domain, how it can be useful in those domains and where it'd fall short in others.

Then the emphasis is placed on writing clean, readable code (as much as I can at least) with them when I build my projects. Knowing the problems the language being and it's tech are trying to solve, it makes the task of learning and writing idiomatic code easier.

Not trying to make it sound like a cakewalk when I say "easy" because we all know it's not, it's a lot of work and the only way to really absorb it is getting experience with it. But people will recognize the skills have been built.
 
Last edited:

Double J

Banned
Joined
May 11, 2012
Messages
1,929
Reputation
-655
Daps
5,264
No degree.

I just really made an emphasis in self-teaching myself the languages, the surrounding technology then familiarizing myself with it's domain, how it can be useful in those domains and where it'd fall short in others.

Then the emphasis is placed on writing clean, readable code (as much as I can at least) with them when I build my projects. Knowing the problems the language being and it's tech are trying to solve, it makes the task of learning and writing idiomatic code easier.

Not trying to make it sound like a cakewalk when I say "easy" because we all know it's not, it's a lot of work and the only way to really absorb it is getting experience with it. But people will recognize the skills have been built.

What languages are you proficient in? And what kind of projects have you completed and posted to your github? you mind linking to it? Just asking cuz I'm in the same boat as you being self taught with no degree and I'm trying to break into the industry.
 

TrebleMan

Superstar
Joined
Jul 29, 2015
Messages
5,592
Reputation
1,180
Daps
17,541
Reppin
Los Angeles
What languages are you proficient in? And what kind of projects have you completed and posted to your github? you mind linking to it? Just asking cuz I'm in the same boat as you being self taught with no degree and I'm trying to break into the industry.

I'd say I'm pretty solid with Golang, Elixir, Haskell and Javascript. Been coding for about 2 years.

My projects:

I started with Golang and built a simple grade table with it and jQuery. Users can log in and change grades.

A RESTful API with Golang that used optional 3-legged OAuth authentication with a ReactJS/Redux client that used ImmutableJS and Web Audio API, it's pretty much a music app and users can play songs through Spotify on it and check the metadata about the song. JSON Web Tokens were used during the validation process.

A RESTFul API with Haskell that was a sports stats app. It made use of Functors, Applicatives and Monads, building my own data types and type classes for them. Pretty much queries to the API send back the stats about each team in certain situations compared to league average.

Chat app with Elixir/Phoenix and React/Redux that makes use of web sockets.

Blog site app with Elixir/Phoenix and React on the front end with pure GraphQL, no RESTful end points and used two GenServers to hit up multiple social media APIs at scheduled times.

No projects were finished 100%, except the Haskell one (which had no front end client) and the first Golang one with jQuery because it was pretty small. But most of them are sitting at 75% with the backends all complete, most of the nice features were finished and the only thing left was some design and basic client side features with React. Which is what I got a lot of interest for because everyone is trying to get me as a React developer.

On top of what everyone in this thread is saying about getting a job, I think if you can build a basic blog site you could probably at least apply somewhere.
 
Last edited:

KritNC

All Star
Joined
Jun 5, 2012
Messages
3,440
Reputation
610
Daps
4,085
Reppin
Costa Rica
I'd say I'm pretty solid with Golang, Elixir, Haskell and Javascript. Been coding for about 2 years.

My projects:

I started with Golang and built a simple grade table with it and jQuery. Users can log in and change grades.

A RESTful API with Golang that used optional 3-legged OAuth authentication with a ReactJS/Redux client that used ImmutableJS and Web Audio API, it's pretty much a music app and users can play songs through Spotify on it and check the metadata about the song. JSON Web Tokens were used during the validation process.

A RESTFul API with Haskell that was a sports stats app. It made use of Functors, Applicatives and Monads, building my own data types and type classes for them. Pretty much queries to the API send back the stats about each team in certain situations compared to league average.

Chat app with Elixir/Phoenix and React/Redux that makes use of web sockets.

Blog site app with Elixir/Phoenix and React on the front end with pure GraphQL, no RESTful end points and used two GenServers to hit up multiple social media APIs at scheduled times.

No projects were finished 100%, except the Haskell one (which had no front end client) and the first Golang one with jQuery because it was pretty small. But most of them are sitting at 75% with the backends all complete, most of the nice features were finished and the only thing left was some design and basic client side features with React. Which is what I got a lot of interest for because everyone is trying to get me as a React developer.

On top of what everyone in this thread is saying about getting a job, I think if you can build a basic blog site you could probably at least apply somewhere.
I am really into elixir can you link some of these projects so I can check them out
 

TrebleMan

Superstar
Joined
Jul 29, 2015
Messages
5,592
Reputation
1,180
Daps
17,541
Reppin
Los Angeles
I am really into elixir can you link some of these projects so I can check them out

I'm assuming you mean the GenServer part?

What I had was my main app/root supervisor in Application.ex:

Code:
defmodule MyApp.Application do
  use Application
  def start(_type, _args) do
    import Supervisor.Spec

    children = [
      #...usual stuff
      supervisor(MyApp.Social.Supervisor, []) # supervisor for all my social media GenServers
    ]
    opts = [strategy: :one_for_one, name: MyApp.Supervisor] # the usual defaults.
    Supervisor.start_link(children, opts)
  end
end


Supervisor I started in the app's root supervisor for social media:
Code:
defmodule MyApp.Social.Supervisor do
  use Supervisor

  ############ Supervisor API##############
 
  def start_link do
    Supervisor.start_link(__MODULE__,[], name: __MODULE__) #This gets called from the Application.ex. This pretty much activates this Supervisor and will restart it on error.
  end

  def init(_) do
    children = [
      worker(MyApp.Social.Twitter, [], id: "tweets") #This calls the start_link function in the child GenServer.
    ]
    supervise(children, strategy: :one_for_one) # again, practically defaults. but :simple_one_for_one maybe when you want to dynamically add workers.

end

The code to run twitter calls, psuedo-code:
Code:
defmodule MyApp.Social.Twitter do
  use GenServer

 
  ##### Public API - The functions other modules can call####

  def start_link do
    GenServer.start_link(__MODULE__, [], name: __MODULE__)
  end

  def pull_tweets(_args) do
    GenServer.call(__MODULE__, :pull_tweets)
  end

  ##### GenServer API - these functions are called based on the Public API ####
 
 # init is automatically ran after start_link is called.
  def init(_state) do
    token = get_twitter_token()       #some function I have for authentication.
    tweets = get_new_tweets(token)
    reschedule()  ####this does the scheduling, we're just setting it on init.
    {:ok, %{token: token, tweets: tweets}}
  end

  #the public function above pull_tweets sends the :pull_tweets message, this function pattern matches on it:
  def handle_call(:pull_tweets, _from, state) do
    tweets = state.tweets
    {:reply, tweets, state}  # tweets is the reply, state isn't being changed.
  end
 
  # sets new tweets every 30 minutes - pattern matches from message send by reschedule()
  def handle_info(:reschedule, state) do
    tweets = get_new_tweets(state.token)
    reschedule() # Reschedule once more
    {:noreply, %{token: state.token, stories: stories}}
  end

 
  ### Helper functions
 
  defp get_new_tweets(token) do
    tweets = make_query_urls
      |> make_tweet_requests(token)    #starts async requests with Task.async on a list of query strings.
      |> Enum.map(&(parse_function(&1) )) # runs Task.await to get responses from each Task.async and decodes the json.
 
   tweets
  end

  defp make_query_urls() do
    #...builds url query strings ...
    return [list of query strings to search]
  end

  defp make_tweet_requests(query_urls, token) do
    tasks =
      Enum.map(query_urls, fn query_url ->
        Task.async(fn -> HTTPoison.get(query_url, headers) end)
      end)
    # tasks is a list of requests started asynchronously.
    tasks
  end
 
  #schedule set to get new tweets every 30 minutes
  defp reschedule() do
     Process.send_after(self(), :reschedule, 1 * 60 * 30000)
  end

end

Pretty much the GenServer makes async requests when the app starts and stores the results, then fetches tweets asynchronously again every 30 minutes and stores the results again.

Then to actually get the tweets, other modules just call MyApp.Social.Twitter.pull_tweets which is the public function on the GenServer. Only two functions in that GenServer are exposed: start_link and pull_tweets, but only the app itself calls start_link.

The social media supervisor is responsible for Facebook, Twitter, Instagram etc. GenServers (Twitter's is shown above). But that one supervisor is in charge of them all - which I may have to change the restart strategy for.

Pretty much each genserver is a separate process that spawns other processes with Task to make async requests. It's pretty much one big ass helper function that stores state.

If you have any questions, just let me know, I've spent months with the language.
 
Last edited:

Obreh Winfrey

Truly Brehthtaking
Supporter
Joined
Nov 18, 2016
Messages
20,706
Reputation
25,201
Daps
131,209
I'm pretty much finished with my app. Code is done. Design is done. But it crashes sometimes with the message "Unforuntately, MyApp has stopped."
Sounds like you have an uncaught exception or error. Look though the logs and see if you can see what's being thrown. But do what Renkz said first and clean then rebuild the project.
 
Joined
Nov 18, 2016
Messages
10,336
Reputation
1,530
Daps
33,381
You tried the typically steps?
clean and rebuild project
restart your project

The weird thing is this only occurs when I test my app on my phone. It runs perfectly fine on the emulator with no crashes. But no I haven't tried the typical steps. I'm gonna try those right now.
 
Top