0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Progate で programming の土台を築く

0
Posted at

開発を始めて間もなく、同じコマンドを毎回手で打つことに飽き、エラーのたびに立ち往生していた。検索サイトで質問を打っても、回答が古くて動かない。溶液が見つからず、精神的にも技術的にも消耗していた。そのとき、あるサイトに出会った。以降、学習の姿勢が大きく変わった。今日は、実際に使われた教材とサイトを、10個紹介する。

Progate で programming の土台を築く

最初に困っていたのは、 programming の基本文法が定着しないこと。for ループを書くたびに、構文を確認してから打ち込むので、集中が途切れた。Progate の場合、ブラウザ上でコードを書くので、環境構築の手間がゼロだ。具体例として、Python のループ問題に取り組むとき、次のように書く。

for i in range(5):
    print(i)

この練習を繰り返すことで、構文を暗記するのではなく、直感的に書けるようになった。画面右側の結果が即時表示されるので、エラーの原因がすぐわかり、精神的な負担が大きく減った。

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

最新ツール・トレンド情報をずんだもん×めたんが解説するYouTubeチャンネルを運営しています!
いいね、チャンネル登録してもらえると嬉しいです🙇‍♂️


ハジメル.dev: https://hajimeru-dev.vercel.app/

「ひとりで続けるのは難しい」「何から学べばいいか分からない」という方向けに、
プログラミングのマンツーマンレッスンサービス「ハジメル.dev」も運営しています。
未経験OK・オンライン完結・月額制/違約金なしなので、気軽に無料相談してみてください🙇‍♂️


海外テックニュースを追いたいけど、英語や情報量の多さで大変…という方向けに、
Hacker News の話題を日本語でサクッと追える「HackerNews 日本語まとめ & AI要約」
を個人開発しました!
技術トレンド収集に使ってもらえると嬉しいです🔥🙇‍♂️
→ HackerNews 日本語まとめ & AI要約: https://hn-matome-2ht.pages.dev/


「ニャンパイアサバイバー」というヴァンパイアサバイバーリスペクトのゲームを作成しました!
もしよろしければ遊んで頂けると嬉しいです😭


習い事教室の先生向けに、SNS 投稿・生徒募集・保護者通知の文章を AI で生成する Web サービス「おしらせAI」を個人開発しました。Next.js + Supabase + LLM で構成しており、無料で月 10 回まで試用できます。よければ触ってみてください。

→ おしらせAI: https://oshirase-ai.vercel.app/


言いたいことがうまく伝わらない…という方向けに、会話の言い方を添削する「伝え方ラボ」を開発中です。
場面を選んで自分の言葉で返すと、何が伝わっていないかの指摘と、そのまま使える言い換えが返ってきます。
ChatGPT に相談すると褒めから入って直すべきところが残りがちなので、指摘側に振り切りました。
現在は公開時にお知らせするメール登録のみ受付中です🙇‍♂️

→ 伝え方ラボ: https://tsutaekata-lab.pages.dev/

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

Udemy で実践的なプロジェクトを学ぶ

基本が servant になった後、応用課題に取り組むようになっても、独学ではどこから手をつけていいかわからなかった。Udemy のコース「完全マスター」シリーズは、完了后的なプロジェクトを段階的に解説している。たとえば、Web アプリ開発コースでは、Flask でシンプルなブック管理アプリを作成する。

pip install flask

このように、依存関係のインストールからデプロイまでを一気通貫で学べる。動画は倍速再生可能で、理解が遅い部分だけを巻き返せるので、時間の無駄が少なかった。

Qiita で実務のテクニックを吸収する

開発現場で困ったとき、検索エンジンで「〇〇 エラー 解法」と入れても、的外れの結果が返ってくることが多かった。Qiita は、日本のエンジニアが書いた実践的な解説が多い。具体例として、Docker のコンテナを起動できない場合の調査方法は、以下のように書かれることが多い。

docker logs [コンテナID]

このコマンドでログを確認し、エラー内容を読み解く。Qiita の記事には、具体的なエラーメッセージとその対処法が並んでいるので、検索結果の質が大きく向上した。

GitHub でコードの変遷を視覚化する

共同作業や、自分の過去のコードを振り返るとき、diff を目で追うのが困難だった。GitHub のビジュアルdiff 機能は、変更点を色で表示する。具体例として、PR を作成する際の変更確認は、以下のように行う。

git diff origin/main HEAD

このコマンドで差分を確認し、GitHub の UI で更加に詳細を checks できる。コードの変遷が一目でわかり、バージョン管理の重要性を実感した。

Stack Overflow で世界的な知識を引く

英語の質問が苦手で、日本語の情報だけに頼っていたが、質問の種類によっては、世界的な回答が得られる。具体例として、Python のライブラリの使用法で困ったとき、以下のようにタグを付けて検索する。

import pandas as pd
df = pd.read_csv('data.csv')

このコードについての質問には、英語圏のエンジニアが詳細に回答している Often。翻訳訳機能を併用することで、知識の範囲が広がった。

freeCodeCamp で免费のカリキュラムをこなす

時間と資金が限られ、有料の教材を購入できなかった。freeCodeCamp は、完全免费で curriculum が用意されている。具体例として、JavaScript のアルゴリズム問題に取り組むとき、以下のように書く。

function factorialize(num) {
  if (num < 2) return 1;
  return num * factorialize(num - 1);
}

この練習を繰り返すことで、アルゴリズム思考が身についてきた。完了后的な証明書も発行されるので、モチベーションが維持された。

Codecademy で対話的な学習を体験する

独学では、モチベーションが続かないときが多かった。Codecademy の対話形式は、 Immediate feedback がある。具体例として、HTML/CSS のレッスンでは、以下のように書く。

<div class="container">
  <h1>Hello World</h1>
</div>

画面に結果が表示され、而成したときの喜びが-learning を継続させる。少しずつ難易度が上がらない設計で、無理なくステップアップできた。

AtCoder で競技 programming の技術を磨く

応用問題に取り組むようになっても、独自の問題では解答が出ない。AtCoder は、本格的な競技 programming のプラットフォームだ。具体例として、ABC プログラミングコンテストの問題に取り組むとき、以下のように書く。

N = int(input())
A = list(map(int, input().split()))
print(sum(A))

このように、入力処理から解法までを一気通貫で学べる。解答を読むことで、自分の解法の改善点がわかり、アルゴリズム力が向上した。

LeetCode で企業の試験問題に対応する

転職活動のため、面接対策が必要だった。LeetCode は、企業の面接で出題される問題を多数収録している。具体例として、配列の二つの数の和がターゲットになるインデックスを見つける問題は、以下のように解く。

def twoSum(nums, target):
    num_map = {}
    for i, num in enumerate(nums):
        if target - num in num_map:
            return [num_map[target - num], i]
        num_map[num] = i

このように、ハッシュマップを活用した解法を学べる。問題を解くことで、データ構造とアルゴリズムの知識が定着した。

書籍で知識の深みを学ぶ

ネット情報だけでは、体系的な知識が欠ける。書籍は、論理的に整理された情報を提供する。具体例として、「 programmers のためのアルゴリズム入門」では、以下のように説明される。

int binary_search(int arr[], int n, int key) {
    int left = 0, right = n - 1;
    while (left <= right) {
        int mid = (left + right) / 2;
        if (arr[mid] == key) return mid;
        else if (arr[mid] < key) left = mid + 1;
        else right = mid - 1;
    }
    return -1;
}

このように、アルゴリズムの本質を深く学べる。書籍は、集中して読めるので、知識の土台を築くのに最適だった。

まとめると、学習は独りよがりではなく、適切なツールと教材を組み合わせることで、効率的に進む。これら10選を試し、自分のペースでステップアップしてほしい。まずは、興味を持ったものから1つ始めてみよう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?