teleren/devto huggingface dataset:
I wish I knew these 5 things before my Software Engineering job search
Tags: beginners, career, codenwebie, motivation
Published: 2019-10-03 19:44:33

Things I wish I knew during my first job search (what worked, what didn’t, stats of the job search, dealing with rejection)

The job search was extremely challenging. It was one of those things I just had to accept, and work on it day by day.

**Check out this video for more detail:**
Subscribe [here](https://www.youtube.com/mattupham?sub_confirmation=1)!
{% youtube jchHL0U4_8g %}

[How to get your first Software Engineering job](https://urlgeni.us/youtube/first_developer_job_no_experience)


The job search doesn't have to be painful!

Things I wish I knew:


###1. Surround yourself with other people in the job search###
<ul>
<li>(online or in person), create accountability groups (otherwise, it’s lonely!)</li>
</ul>

###2. Focus mainly on ways to apply, that actually connect with real people###

<ul>
<li>Angel List / TripleByte (if you pass, it’s excellent!)</li>
<li>Reaching out directly on LinkedIn, Email</li>
<li>Recruiters are NOT all bad, they can be a great way into your first job!</li>
<li>Don’t just send your resume into a black hole (*cough* Indeed *cough*) without connecting to a person</li>
</ul>

###3. Studying###
<ul>
<li>Choose a technology you see that’s common on job boards, that you don’t have. Learn that! Choose one project, learn the technology. Then move to another (~20% of time)</li>
<li>Algorithms! Spend the rest of your study time on these</li>
</ul>

###4. Job search stats###
<ul>
<li>Check out the video above where I do a deep dive into my job search stats, and realistic numbers if you don’t have experience (this will help you get expectations)</li>
</ul>

###5. Once I got the on-site, I went all-in###
<ul>
<li>Make videos of all projects, send with application</li>
<li>Phone screen (send thank you note, send in refactored / polished code after)</li>
<li>Make a project with the company's technology, if possible</li>
<li>Communicate clearly</li>
<li>Take down note of everyone, for on-site, send personalized Thank You Notes</li>
<li>Adapt code, refactor, send in for on-site</li>
</ul>

The whole process was ~6-8 months

If you found this video useful, please consider subscribing to my YouTube Channel! I talk about software & tech, life in Silicon Valley, and self-improvement!

**Subscribe Here**

[YouTube - Matt Upham](https://www.youtube.com/mattupham?sub_confirmation=1)

Join our growing [Discord](https://discord.gg/9RGdMcF) community! 

Thanks for reading!
Quickly generating a Dockerized Rails development environment
Tags: docker, rails, bash
Published: 2019-10-03 19:36:54

---
title: Quickly generating a Dockerized Rails development environment
published: true
description: In this post I share a quick environment script to help bootstrapping new Rails applications for testing and development.
tags: docker,rails,bash
---
The motivator for this small quality of life "hack" came from the frustration of managing all possible variables of creating a new Rails project. Every time I wanted to test a new tutorial or course, I had to worry about the already existing versions of Rails, Ruby, and npm packages.The obvious solution for my problem is to containerize my test applications. 
This is just a quick script to help bootstrap this process by spinning up a temporary docker container, generating a new Rails application, and writing the Dockerfile and docker-compose.yaml files to the newly created application folder.
Append this function to the end of your `~/.zshrc` or `~/.bashrc`
```shell
generate_rails_project() {
    docker run -it --rm -v "$PWD":/"$1" -w /"$1" ruby:latest /bin/bash -c "curl\ 
-sL https://deb.nodesource.com/setup_12.x | bash && apt-get install -y nodejs &&\ 
npm i -g yarn && gem install rails && rails new $1 $2"
    echo "FROM ruby:latest
\n
\n
RUN mkdir /"$1"
WORKDIR /"$1"
\n
RUN apt-get update
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash -
RUN apt-get install -y nodejs
RUN npm i -g yarn
RUN gem install bundler
\n
\n
COPY Gemfile /"$1"/Gemfile
COPY Gemfile.lock /"$1"/Gemfile.lock
RUN bundle install
COPY . /"$1"
" > "$1"/Dockerfile
    echo "version: '3.6'
services:
    $1:
        build:
            context: .
        volumes:
            - .:/"$1"
        ports:
            - '3000:3000'
        command: bash -c \"rm -f tmp/pids/server.pid && bundle exec rails s -p 3000\
-b '0.0.0.0'\"" > "$1"/docker-compose.yaml
}
```
You might want to alias this function to something that is quicker to use. I'll go with nrp for `new rails project`:
```shell
# I'm adding this at the very end of my ~/.zshrc, after the new function
alias nrp=generate_rails_project
```
to make changes available immediately, run:
```shell
source ~/.zshrc
```
or if you're not running the ZSH shell:
```shell
source ~/.bashrc
```


To use this new alias:
```shell
nrp my_project
cd my_project
docker-compose up --build
```
in a new tab you can start your IDE and issue commands to the docker container like so:
```shell
code .
docker-compose run my_project rails generate controller Welcome index
```

You can also start a new Rails API application as such:
```shell
nrp my_project --api
```

Things to note:
* This script will use the latest version of Ruby and Rails available
* You need docker and docker compose installed for this setup to work
* This setup should work as is on most linux distros and on OSX, but for Windows 10 you will probably need to configure this in the WSL or git bash
* This script should not be used for generating production applications. The intent of this script is to quickly bootstrap new projects for test environments.
Angela Elliott 
Published: 2019-10-03 19:31:49

I am very excited about code accademy.  
I am learning about HTML, the skeleton of all web pages. 
This is the core of front-end development work. 

HTML stands for hyper Text Markup Language 
* A markup language is a computer language that defines the structure and presentation of raw text.
* In HTML, the computer can interpret raw text that is wrapped in HTML elements.
* Hyper Text is the text displayed on a computer or device that provides access to other text through a point and click method.

open and close the first part of coding I understood!!
element unit of content, text, images
content Hello World
opening tag
closing tag 
The Body 
  
 HTML Structure
 HTML is organized as a collection of family tree relationships.
 
When an element is contained inside another element it is considered the child of that element.
 The child element is nested inside of the parent element.
  
  I am learning the grandparents and the rest of the placement .i am excited to start the next set of web development basics.
Optimizing your Workday with Simplenote
Tags: productivity
Published: 2019-10-03 19:13:13

*this post is not sponsored, I just really enjoy their software*

**TL;DR download Simplenote. It’s a well thought out Notes app that supports markdown, syncs between all of your devices, and uses a tagging system to search.** 

Finding a good note-taking app is critical. Getting stuff out of your head for later processing is key to productive work. 

To me a good note taking app is:

1. intuitive
2. lightweight
3. markdown compatible
4. searchable
5. syncs between all my devices 
6. secure/private 


I've used a lot of note taking softwares, to various degrees of success. I’ve used Notion, Apple Notes, bullet journaling and I even tried managing notes on Google Docs for a brief stint. 

The problem was, most note taking options were much too heavy. They either took forever to open or were so bogged down with features that it distracted from the note taking experience. 

Before Simplenote my favorite note taking devices were: 

1. Bullet Journaling 
2. Apple Notes
3. Notion

### Bullet Journaling 

I love bullet journaling because of the daily format. Each day is unique, and may require drawings and chicken scratch to describe, that text just can’t do. The dots, dashes and circle method is intuitive and makes searching through pages a breeze. And since it’s not put on the internet, it’s private! 

But.

Carrying around a journal is a pain. 
Remembering to write everyday is a pain. Losing a journal is a pain.

### Apple Notes

Fast. That is the main reason I used Apple Notes. An idea strikes? Open the notes app. Want to clarify an older idea? Notes app. The search functionality is impressive.

But.

The Notes app doesn’t support markdown. This makes formatting a pain. Writing longer form content on it is out of the question.


### Notion

Hyper futuristic writing-organizing-editing-workflow technology that I hope to return to in the future. Linking between pages is a joy, and there are a lot of fun toys to play with.

But.

The experience on iPad and iPhone is **awful**. It lags, it jumps around different parts of the document, editing previous blocks means you have to scroll and tap on them.

### Simplenote

For me, Simplenote was the solution. I needed something that wouldn't take 500 years to open on my phone to capture quick ideas, but also be flexible enough for longer form content. It is password protected so I feel less nervous expressing my thoughts (still not nearly as safe as paper; given the nature of the Internet). 

Simplenote allows me to organize my thoughts, monitor project completion, and capture ideas when inspiration strikes. And it syncs between all my devices! For free! 

*Caveat: apparently some users have ran into [issues with syncing](https://www.ctrl.blog/entry/review-simplenote.html). I personally haven't.*

At the end of the day, the tool needs to fit the job. If you're more comfortable on Evernote, or with pen and paper, or writing on cave walls, you do you. Find what works.
Designing for Devs at Auth0
Tags: dx, ux, programming
Published: 2019-10-03 19:04:39

---
title: Designing for Devs at Auth0
published: true
description: Why your need for rapid integrations drives our modality approach
tags: #dx #ux #programming 
canonical_url: https://auth0.com/blog/designing-for-devs-at-auth0/
---
The identity job you're trying to do at the moment — and the most efficient way to tackle it — is what matters to Auth0.

Making sure our product reflects the simplicity and power you need, when you need it, is why we've embraced a "modalities" model when we work on our developer experience (DX). Because our platform is integrated tightly with our customers' applications, we want to provide developers with a slider on DX that fits the mode of the moment when working with Auth0.

In the Auth0 Product Team, our mission is to make identity simple regardless of the modality you choose to use. The questions that keep us up at night are: Is there a comparable experience across all the modalities? Can you perform a core action of using Auth0 via any of these approaches? Can you really choose your own adventure?

[Continue reading 📖]( → https://auth0.com/blog/designing-for-devs-at-auth0/?utm_source=dev&utm_medium=sc&utm_campaign=designingfordevs_auth0)

![Designing for Devs at Auth0](https://cdn.auth0.com/blog/illustrations/designing-for-devs-at-auth0.png)
About Bishop Tracie Williams Dickey
Tags: traciewilliamsdickey, bishoptraciewilliamsdickey, traciedickey, pittsburgh
Published: 2019-10-03 18:49:34

Tracie Williams Dickey., of Deliverance Tabernacle Ministries Intl., is a true Apostolic and Prophetic Voice to the Nations who God has uniquely and skillfully crafted to fulfill His purpose for the 5-Fold Ministry on earth. Bishop Tracie Williams Dickey is a specialized gift to the Body of Christ who has been set apart for God's End-Time Work. She serves as a highly sought after international keynote speaker, author, teacher, mentor, and motivational speaker. The Bishop is often referred to as The Voice with a Vision and The Iconic Clarion Sound of a Trumpet, who stands as the Mouthpiece of God crying loud and sparing not. Submitted and yielded to bring forth order, establishment, and direction as God's imparted vision comes to pass among His people. Dr. Dickey's message of healing and restoration through Divine Prophetic Revelation allows the lost, wounded and rejected to regain their faith and hope in the power of Jesus Christ — ultimately empowering them to embark upon the Destiny that God has in store for them.

Bishop Tracie Williams Dickey continues to be heard throughout the World declaring the Word of the Lord. The International Ministries of Dr. Tracie Williams Dickey can be experienced on several of her Broadcasts: The Power of Deliverance Broadcast, The A.W.A.K.E. Women's Broadcast (Anointed Women Acclaimed For Kingdom Empowerment), and also The Men on the Move Men's Broadcast. To God Be the Glory for the things He has done and continues to do.
การดึงค่าจาก Dictionary แบบเช็คค่าแล้วจบในบรรทัดเดียว
Tags: csharp, dotnet
Published: 2019-10-03 18:37:38

วันนี้จะมาพูดถึงการดึงค่าจาก Dictionary ที่ดูเหมือนจะไม่มีอะไร แต่ไม่ค่อยเห็นการใช้ในแบบที่ควรจะเป็นสักเท่าไหร่ครับ

การใช้ ​Dictionary ปกติแล้ว มักจะต้องมีการเช็คก่อนว่ามี key อยู่หรือไม่ เนื่องจากการเรียกจาก key ที่ไม่มีอยู่จะทำให้เกิด exception ดังนั้นจึงมักจะเห็น code แบบนี้เป็นปกติ

```csharp
  public string FindX_Naive(Dictionary<string, string> dic) 
  {
    if (dic.ContainsKey("X")) return dic["X"];
    else return null;    
  }
```

แต่บางท่านก็อาจจะเห็นแล้วว่า ปัญหาของ code นี้คือ มันต้องไปวิ่งหา 2 ครั้ง คือ ที่ `dic.ContainsKey("X")` รอบนึง แล้วก็ที่ `dic["X"]` อีกรอบนึง แถมยังมี `"X"` ในโค้ดสองที่อีกต่างหาก

ซึ่งความจริงแล้ว Dictionary ของ .NET มี method `TryGetValue()` ให้ใช้อยู่แล้ว ซึ่งถ้าเปลี่ยนไปใช้แบบนั้น ก็อาจจะเขียนออกมาได้แบบนี้

```csharp
  public string FindX_Try(Dictionary<string, string> dic) 
  {
    string s;
    if (dic.TryGetValue("X", out s)) return s;
    else return null;
  }
```

คราวนี้ เราก็มี `"X"` ที่เดียว และวิ่งหารอบเดียวแล้วคือตอนที่เรียก `TryGetValue` แต่ปัญหาคือ code ดูรกรุงรังมาก โดยเฉพาะตัวแปร s ที่ประกาศมาก็ไม่ได้ใช้อะไรมาก แต่โชคดีที่ [C# 7 ได้เพิ่มวิธีการประกาศตัวแปร out ให้ทำได้ตรงที่เรียกใช้เลย](https://devblogs.microsoft.com/dotnet/whats-new-in-csharp-7-0/) ดังนั้นเราก็จะสามารถเขียนให้กระชับกว่าเดิมได้

```csharp
  public string FindX_Try_OutVar(Dictionary<string, string> dic) 
  {
    if (dic.TryGetValue("X", out var s)) return s;
    else return null;
  }
```

แต่เขียนให้สั้นกว่านี้ก็ยังได้ โดยใช้ conditional operator และ expresion bodied method 

```csharp
  public string FindX_Final(Dictionary<string, string> dic) 
    => dic.TryGetValue("X", out var s) ? s : null;
```

ซึ่งจะเห็นว่าเขียนสั้นพอ ๆ กับแบบแรก แต่ถูกต้องในแบบที่ควรจะใช้มากกว่า

สรุปคือ ถึงแม้ว่าการเขียนแบบตัวอย่างแรกสุดจะดูเข้าใจง่าย แต่ก็เป็นการสิ้นเปลืองในการที่จะต้องวิ่งหาใน Dictionary สองรอบ ซึ่งก่อนหน้านี้ก็พอมีข้ออ้างได้ว่า code ดูง่ายกว่าเพราะการเขียนแบบใช้ out ก็จะดูเยิ่นเย้อ แต่ตั้งแต่ C# 7 เป็นต้นมา ก็มี feature พอที่จะเขียนรูปแบบดังกล่าวให้อ่านง่ายและได้ประสิทธิภาพดีกว่าแล้วครับ
AIOps: DevOps in the Age of AI/ML
Tags: machinelearning, sre, devops, ai
Published: 2019-10-03 18:27:53

How did we take DevOps at Innovaccer to the next level with AI/ML? This has reduced the effort required for managing the infrastructure. We used the data generated by infrastructure resources and logs for scalability, fault tolerance, SLAs adherence and reducing cost using AI/ML algorithms.

{% medium https://medium.com/innovaccer-tech/aiops-devops-in-the-age-of-a-i-c204e08f1ea7 %}
Day 1-2 - Started with 100 days of coding challenge to learn TypeScript
Tags: typescript, javascript, 100daysofcode
Published: 2019-10-03 18:18:55

I publicly(on twitter) committed to the 100DaysOfCode Challenge yesterday and started with learning TypeScript. 

I am completing a TypeScript course on [Udemy - Typescript: The Complete Developer's Guide](https://www.udemy.com/course/typescript-the-complete-developers-guide/)

Day 1: Started learning TypeScript 

Completed with the introduction and basic environment setup for TypeScript.

Day 2: Executed the first TypeScript code.

The main goal of TypeScript is to catch the errors in the development phase. Started with a simple example to fetch static JSON data and pretty-print the response data. 

Wrote an interface in TypeScript. Interfaces in TypeScript are used to define the structure of the object. Adding interface helped in catching the error in development if wrong JSON key was used.

Here is the first `index.ts` I wrote:


```javascript
import axios from "axios";

const url = "https://jsonplaceholder.typicode.com/todos/1";

interface Todo {
  id: number;
  title: string;
  completed: boolean;
}

axios.get(url).then(response => {
  const todo = response.data as Todo;

  const id = todo.id;
  const title = todo.title;
  const completed = todo.completed;

  logTodo(id, title, completed);
});

const logTodo = (id: number, title: string, completed: boolean) => {
  console.log(`
    The Todo with ID : ${id}
    Has a title of: ${title}
    Is it finished? ${completed}
  `);
};
```

Happy coding fellas.
As a self-taught, have you considered getting a degree afterwards?
Tags: career, learning
Published: 2019-10-03 17:50:16

---
title: As a self-taught, have you considered getting a degree afterwards?
published: true
description: Self-taught going back to school?
tags: career, learning
---

Hello everyone!

More and more people come into this industry without any kind of degree. Considering how easy it is to gather informations today, and how easier it has become to get a computer and start creating things, it is really no surprise. 

I am one of those people, I've been a freelancer for almost 3 years now, and didn't get any degree after the high school diploma. Learning by myself, by reading books, watching videos and fucking up thousands of lines of code on the computer, I managed to do alright for myself.

But, even if I am proud of what I was able to accomplish by myself, there is no denying that some companies might not look at it very kindly. While companies/clients with that sort of attitude are not really appealing to work for, I might miss out on some cool opportunities.

Another thing that I have been thinking about concerns the learning of fundamentals. I've never been too concerned about it, picking them up when I felt it was necessary, and unavoidable. There are many flaws in my knowledge, things that some would consider essential. While this is sometimes a matter of perspective, it might be true some other times.

So, I was thinking, to fight the imposter syndrome, to learn some other stuff and to prove to myself and others my knowledge, I thought about getting an actual degree.

Now, in France, there is a way to validate a degree by proving that you indeed work in that domain, and pass a test in front of a jury to confirm that you do know what you are talking about. I have no idea how it works in other countries, but I have that possibility to work towards a degree without having to quit everything. It will add to my workload, but nothing unbearable. May I note that the cost of the procedure is not a problem in my case.

Taking this kind of challenge might also give me some structure about what I learn, because I would have a clear goal in mind (and boy do I struggle with that...). I could also imagine that it could be useful to have some kind of degree as a stepping stone, if I ever want to move in a slightly different direction in my career in the future.


So, I don't know, I'm looking forward to hear some of your stories, experiences, thoughts... I don't think getting a degree is ever a bad thing, but this has been in my head for a few days now.
Love :heart:
Continuous Integration and Deployment (CI/CD Pipeline) with Github Package and Github Actions
Tags: github, typescript, npm, package
Published: 2019-10-03 18:10:19

---
description: From the previous post, I showed you how to create your first Github package. I hope that you had some fun. And in this article, you will learn how to add CI/CD pipeline to the process.
---

From the previous post, I showed you [how to create your first Github package](https://dev.to/dalenguyen/create-your-first-github-package-564f?id=179945). I hope that you had some fun. And in this article, you will learn how to add CI/CD pipeline to the process.

That means every time you push or merge to master, Github Actions will **trigger the pipeline, run your test cases, and deploy your package to Github Package Registry automatically**. From now, you can manage everything in your repo — is it interesting? :)

Before getting started, you need to add your personal access token to the environment.

![Personal Access Token](https://thepracticaldev.s3.amazonaws.com/i/uxym85npdyz1tnjxienn.png)

The process is pretty easy. Once you have your package ready, what you need to do is to create a ci.yml file in your repo. Remember to change my username in the script.

```
// .github/workflows/ci.yml
name: Publish to GitHub Package Registry
on: [push]
jobs:
  build:
runs-on: ubuntu-latest
steps:
    - uses: actions/checkout@v1
    - name: Use Node.js 8.x
      uses: actions/setup-node@v1
      with:
        registry-url: https://npm.pkg.github.com/
        node-version: 8.x
        scope: '@dalenguyen'
    - name: npm install, build, and test
      run: |
        npm install
        npm run build --if-present
        npm test      
    - name: publish
      env:
        NODE_AUTH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
      run: |
        npm run deploy

```

If you want to trigger the build when merging to master, you can use this:

```
on:
  pull_request:
    branches:
      - master
```
After you push or merge to master, you can check the build under the **Actions** tab

![Actions build](https://thepracticaldev.s3.amazonaws.com/i/x8ifa0ogbro5rv70fuxs.png)

After everything passed, my package was replaced by the updated version.

The script was contributed by [honsq90](https://github.com/honsq90) through **#Hacktoberfest** event.
Using open source Eclipse Che factories to increase project contributions
Tags: github, vscode, opensource
Published: 2019-10-03 18:02:08

Last month the team behind Eclipse Che announced that Che 7 is GA. 7.0 comes with a ton of cool features, like Theia IDE and (because of Theia IDE) the ability to use Visual Studio Code extensions, you can learn more about the release [here](https://che.eclipse.org/eclipse-che-7-is-now-available-40ae07120b38). 

For projects that are hosted on GitHub, Che 7 provides features/functionality to allow contributions to happen easily, by eliminating the need to configure a local environment with the Factory feature. You can learn more about that [here] (https://che.eclipse.org/discover-che-7-devfile-85a8cc83d860)

What does that look like in the wild? Look at the [Vert.X README](https://github.com/vert-x3/vertx-examples) on GitHub or the [Eclipse Che Website README](https://github.com/eclipse/che-website).