# Initial Commit > Guides, tutorials and tools for developers who want to understand Git and version control, written by the team behind git-sim, the Git command simulator. Every article below is also available as Markdown by adding .md to its URL. ## Learn Git by topic Each topic page gathers the lessons, command reference pages, cheat sheets and articles on that topic. - [Git basics](https://initialcommit.com/learn/git/basics): Learn the Git core commands and concepts you'll use every day. - [Branching and merging](https://initialcommit.com/learn/git/branching): Learn how to work with branches and merge your changes together. - [Rewriting history](https://initialcommit.com/learn/git/history): Learn how to change and clean up commits you've already made. - [Working with a team](https://initialcommit.com/learn/git/team): Learn how to share your work and stay in sync with your team. - [Getting out of trouble](https://initialcommit.com/learn/git/rescue): Learn how to undo mistakes and recover work you thought was lost. - [How Git works inside](https://initialcommit.com/learn/git/internals): Learn how Git works under the hood. - [The Visual Git Command Reference](https://initialcommit.com/learn/git/visual-command-reference): every command git-sim simulates, played on one sample repository, with a risk rating - [Animated Git Cheat Sheet](https://initialcommit.com/learn/git/animated-cheat-sheet) - [Articles](https://initialcommit.com/learn/git/articles) ## Git command reference One page per Git command: what it does to a repository, played on an interactive graph, with git-sim's risk rating and the way back. All of them: [Git commands](https://initialcommit.com/learn/git/commands). - [git add: the pause between editing and committing](https://initialcommit.com/learn/git/commands/git-add.md): git add copies a file's current contents into the staging area. Watch two files move into it on a real repository, see what git status says afterwards, and learn why the extra step is there at all. - [git bisect: binary search for the commit that broke it](https://initialcommit.com/learn/git/commands/git-bisect.md): git bisect finds the commit that introduced a bug by halving the range of suspect commits with every test you run. Walk through a real session, automate it with git bisect run, and clean up after. - [git blame: which commit last touched this line](https://initialcommit.com/learn/git/commands/git-blame.md): git blame labels every line of a file with the commit that last changed it. Learn to read it, narrow it down, and see past reformatting commits. - [git branch: a name pointing at a commit](https://initialcommit.com/learn/git/commands/git-branch.md): git branch creates a new branch at your current commit without switching to it: one small file holding one commit hash. Watch git branch create one on a real repository, look at the file it writes, and see why that makes branching effectively free. - [git branch -d: Git checks before it deletes](https://initialcommit.com/learn/git/commands/git-branch-delete.md): git branch -d deletes a branch only if its commits are already reachable from your current branch. Watch it on a real repository, see what actually gets removed, and learn what to do when Git refuses. - [git branch -D: deleting a branch Git would rather keep](https://initialcommit.com/learn/git/commands/git-branch-delete-force.md): git branch -D deletes a branch even when its commits are on no other branch. Watch three commits become unreachable on a real repository, and learn the one command that brings the branch back. - [git branch -m: a new name, the same commits](https://initialcommit.com/learn/git/commands/git-branch-rename.md): git branch -m renames a branch, and every commit stays exactly where it is. See it on a real repository, then rename the remote branch and fix the upstream. - [git checkout: the Swiss army knife that moves HEAD](https://initialcommit.com/learn/git/commands/git-checkout.md): git checkout points HEAD at a different branch and rewrites your working directory to match. Watch it on a real repository, see what Git protects you from, and learn why git switch was split off from it. - [git checkout -b: branch and switch in one move](https://initialcommit.com/learn/git/commands/git-checkout-b.md): git checkout -b creates a branch at your current commit and moves HEAD onto it in a single step. Watch it on a real repository and see how to start the branch somewhere else instead. - [git checkout : stepping off your branch into detached HEAD](https://initialcommit.com/learn/git/commands/git-checkout-detached.md): git checkout moves HEAD onto a commit instead of a branch. See what detached HEAD is, what the warning means, and how to keep commits made there. - [git cherry-pick: apply one commit's change to another branch](https://initialcommit.com/learn/git/commands/git-cherry-pick.md): git cherry-pick applies one commit's change to your current branch as a new commit. See it on a real repository and why the original stays put. - [git cherry-pick --abort: calling off a pick that conflicted](https://initialcommit.com/learn/git/commands/git-cherry-pick-abort.md): git cherry-pick --abort cancels a pick that stopped on a conflict and puts your branch back. See it on a real repository and how it differs from --quit. - [git cherry-pick --continue: finishing a pick that conflicted](https://initialcommit.com/learn/git/commands/git-cherry-pick-continue.md): git cherry-pick --continue commits a picked change once its conflict is resolved and staged. Watch the pick land on main, and see how ranges stop per conflict. - [git cherry-pick A..B: applying a run of commits](https://initialcommit.com/learn/git/commands/git-cherry-pick-range.md): git cherry-pick A..B applies a run of commits to your branch as new commits, oldest first, leaving A out. See three picked and when to write A^..B. - [git clean: deleting the files Git has never heard of](https://initialcommit.com/learn/git/commands/git-clean.md): git clean deletes untracked files, the ones Git has no copy of. Watch it on a real repository, see why the deletion is permanent, and learn to run it with -n first every time. - [git clean -fd: untracked folders go too](https://initialcommit.com/learn/git/commands/git-clean-directories.md): git clean -fd deletes untracked files and untracked directories. See it on a real repository, how it differs from -f and -fdx, and what it will not touch. - [git clean -n: the preview before the delete](https://initialcommit.com/learn/git/commands/git-clean-dry-run.md): git clean -n lists the untracked files git clean would delete and deletes none of them. See it on a real repository and learn to preview every clean flag. - [git clone: a full copy, history and all](https://initialcommit.com/learn/git/commands/git-clone.md): git clone copies a repository and its full history, sets up origin and checks out one branch. See what you get, plus shallow and single-branch clones. - [git commit: taking the snapshot](https://initialcommit.com/learn/git/commands/git-commit.md): git commit turns the staging area into a permanent snapshot with a hash, a parent and a message. Watch one get created on a real repository and see what it does and doesn't include. - [git commit -a: skipping the git add step](https://initialcommit.com/learn/git/commands/git-commit-all.md): git commit -a stages every modified tracked file and commits in one step. Watch two edits go straight into a commit, and see which files it skips. - [git commit --amend: fixing the last commit in place](https://initialcommit.com/learn/git/commands/git-commit-amend.md): git commit --amend folds staged changes and a new message into your last commit. Watch the old commit get replaced on a real repository, and see why the hash changes and what that means once you've pushed. - [git config: telling Git who you are](https://initialcommit.com/learn/git/commands/git-config.md): git config sets your name, email and every other Git setting. See which file each level writes to, and which level wins when they disagree. - [git diff: what changed, and compared to what](https://initialcommit.com/learn/git/commands/git-diff.md): git diff shows line-by-line changes between your files, the staging area and any commit. Learn to read its output and pick the right comparison. - [git fetch: the safe half of git pull](https://initialcommit.com/learn/git/commands/git-fetch.md): git fetch downloads the remote's new commits and updates your origin/ branches, without touching your own branch or your files. Watch it move origin/main on a real repository, then decide how to bring the new commits in. - [git fetch --prune: clearing out remote branches that are gone](https://initialcommit.com/learn/git/commands/git-fetch-prune.md): git fetch --prune deletes remote-tracking branches like origin/feature once their branch is gone from the remote. See it on a real repository and make it the default. - [git init: where every repository starts](https://initialcommit.com/learn/git/commands/git-init.md): git init creates the hidden .git folder that makes a directory a repository. See what's inside, why the first branch has no commits, and how to name it. - [git log: reading history backwards](https://initialcommit.com/learn/git/commands/git-log.md): git log lists the commits reachable from HEAD, newest first, by following each commit's parent links. See that walk drawn on a real repository, learn why a branch you can't see in the output is still there, and pick up the handful of flags that make log readable. - [git merge: how two branches become one](https://initialcommit.com/learn/git/commands/git-merge.md): git merge joins two diverged branches with a commit that has two parents. Watch one get created on a real repository, see what it contains, and learn how to undo it and what a conflict actually is. - [git merge --abort: backing out of a conflicted merge](https://initialcommit.com/learn/git/commands/git-merge-abort.md): git merge --abort calls off a merge that stopped on a conflict and puts your files back as they were. See it on a real repository and when it refuses. - [git merge --continue: finishing the merge you fixed](https://initialcommit.com/learn/git/commands/git-merge-continue.md): git merge --continue commits a merge once you've resolved and staged its conflicts. Watch the two-parent merge commit appear on a real repository. - [Fast-forward merges: when merging just moves a label](https://initialcommit.com/learn/git/commands/git-merge-fast-forward.md): When your branch has no commits of its own, git merge fast-forwards it: your branch moves up to the other branch's tip and no merge commit is created. Watch a fast-forward on a real repository, see what Git checks before it does one, and learn how to get a merge commit anyway. - [git merge --no-ff: the merge commit you asked for](https://initialcommit.com/learn/git/commands/git-merge-no-ff.md): git merge --no-ff creates a merge commit even when Git could fast-forward. Watch the same merge both ways on a real repository and see what the extra commit buys you. - [git merge --squash: a whole branch as one staged change](https://initialcommit.com/learn/git/commands/git-merge-squash.md): git merge --squash stages a branch's combined changes without committing or recording a merge. Watch three commits become one staged set on a real repository. - [git mv: how Git renames a file](https://initialcommit.com/learn/git/commands/git-mv.md): git mv renames a file and stages the rename in one step. Watch it on a real repository, see how git status reports it, and learn why Git doesn't actually store renames at all. - [git pull: fetch, then merge, in one command](https://initialcommit.com/learn/git/commands/git-pull.md): git pull fetches your upstream branch's new commits and merges them into your branch. Watch both halves on a real repository where you and a teammate have both committed, see where the surprise merge commit comes from, and learn the two settings that change it. - [git pull --rebase: your commits on top, no merge commit](https://initialcommit.com/learn/git/commands/git-pull-rebase.md): git pull --rebase fetches new commits and replays yours on top instead of merging. Watch it on a real repository and see what to do when it stops on a conflict. - [git push: sending your commits up](https://initialcommit.com/learn/git/commands/git-push.md): git push uploads your new commits and moves the remote's branch to match yours. Watch it on a real repository, see why Git rejects a push when the remote has moved, and learn what to do about it. - [git push --delete: removing a branch from the remote](https://initialcommit.com/learn/git/commands/git-push-delete.md): git push origin --delete removes a branch from the remote and your origin/ label with it. Watch it on a real repository and learn how to restore the branch. - [git push --force: rewriting history other people have](https://initialcommit.com/learn/git/commands/git-push-force.md): git push --force replaces the remote branch with yours, whatever it held. Watch it overwrite a teammate's commits on a real repository, see why the pre-flight check couldn't warn you, and learn how to recover. - [git push --force-with-lease: the force push with a seatbelt](https://initialcommit.com/learn/git/commands/git-push-force-with-lease.md): git push --force-with-lease force pushes only if the remote branch is where you last saw it. Watch it refuse on a real repository where a teammate had pushed, and learn the one habit that makes it reliable. - [git push -u: publishing a new branch](https://initialcommit.com/learn/git/commands/git-push-set-upstream.md): git push -u publishes a new branch and sets its upstream, so plain git push and git pull work after. Watch origin/hotfix appear on a real repository. - [git push --tags: sending your tags to the remote](https://initialcommit.com/learn/git/commands/git-push-tags.md): git push --tags sends every local tag the remote doesn't have yet, and no branches. Watch two tags reach origin on a real repository, plus --follow-tags. - [git rebase: your commits, replayed](https://initialcommit.com/learn/git/commands/git-rebase.md): git rebase reapplies your commits on another branch as new commits with new hashes. Watch the replay, see the originals, and learn when not to rebase. - [git rebase --abort: back to where the rebase started](https://initialcommit.com/learn/git/commands/git-rebase-abort.md): git rebase --abort cancels a stopped rebase and puts your branch back where it was. Watch the half-made new commits drop away on a real repository. - [git rebase --continue: picking up where the conflict stopped you](https://initialcommit.com/learn/git/commands/git-rebase-continue.md): git rebase --continue commits your conflict resolution and replays the rest of the branch. Watch it finish a stopped rebase and see the originals fall away. - [git rebase -i: editing history with a to-do list](https://initialcommit.com/learn/git/commands/git-rebase-interactive.md): git rebase -i hands you a list of commits and lets you squash, reword, reorder or drop them before replaying. Watch a squash on a real repository and learn what each todo verb does. - [git rebase --onto: moving only part of a branch](https://initialcommit.com/learn/git/commands/git-rebase-onto.md): git rebase --onto moves a chosen slice of a branch onto a new base. See how to move a branch started from another branch onto main, and both forms. - [git rebase --skip: leaving the conflicting commit behind](https://initialcommit.com/learn/git/commands/git-rebase-skip.md): git rebase --skip drops the commit a rebase stopped on and carries on without it. See which change disappears from the branch, and when skipping is right. - [git reflog: Git's black box recorder](https://initialcommit.com/learn/git/commands/git-reflog.md): git reflog lists where HEAD and your branches have pointed, including commits that no branch reaches any more. Read it entry by entry on a real repository, and learn the two commands that recover a commit you reset or rebased away. - [git remote add: a nickname for another repository](https://initialcommit.com/learn/git/commands/git-remote-add.md): git remote add saves another repository's URL under a short name. See the two config lines it writes and why nothing downloads until you fetch. - [git reset: the default that keeps your edits](https://initialcommit.com/learn/git/commands/git-reset.md): git reset with no flag moves your branch back and clears the staging area, but leaves every file on disk alone. Watch it on a real repository and see where the undone commit's changes end up. - [git reset HEAD file: unstaging one file](https://initialcommit.com/learn/git/commands/git-reset-file.md): git reset HEAD copies the committed version of one file back into the staging area, unstaging it while your edit stays on disk. Watch it on a real repository and see how it relates to git restore --staged. - [git reset --hard: the one that actually deletes](https://initialcommit.com/learn/git/commands/git-reset-hard.md): git reset --hard moves your branch, rewrites the staging area and overwrites your files in one shot. Watch it on a real repository, see what survives, and learn the reflog trick that brings the commits back. - [git reset --soft: uncommit without touching a file](https://initialcommit.com/learn/git/commands/git-reset-soft.md): git reset --soft moves your branch back and leaves everything else alone, so the undone commit's changes sit staged and ready to recommit. Watch it on a real repository and see when it beats the other two resets. - [git restore: throwing away edits on purpose](https://initialcommit.com/learn/git/commands/git-restore.md): git restore overwrites a file with the version in the staging area, discarding your uncommitted edits to it. Watch it on a real repository and understand why those edits are gone for good. - [git restore --staged: unstage, keep the edits](https://initialcommit.com/learn/git/commands/git-restore-staged.md): git restore --staged takes a file out of the staging area and leaves your edit on disk. Watch it on a real repository and see how it differs from plain git restore, which does the opposite. - [git revert: undo by adding, not deleting](https://initialcommit.com/learn/git/commands/git-revert.md): git revert creates a new commit that reverses an earlier one, leaving the original in place. Watch it on a real repository and see why it is the undo you can use on a branch other people have. - [git revert -m 1: undoing a whole merge](https://initialcommit.com/learn/git/commands/git-revert-merge.md): git revert -m 1 adds a commit undoing everything a merge brought in. See it on a real repository, what -m 1 means, and why re-merging later needs care. - [git rm: removing a file from the repository and the disk](https://initialcommit.com/learn/git/commands/git-rm.md): git rm deletes a tracked file and stages the deletion in one step. Watch it on a real repository, see how to stop tracking a file without deleting it, and learn how to get a removed file back. - [git rm --cached: stop tracking a file, keep it on disk](https://initialcommit.com/learn/git/commands/git-rm-cached.md): git rm --cached stops Git tracking a file but leaves it on disk. Watch it untrack a committed .env file, then keep it out with .gitignore. - [git show: open any object Git has stored](https://initialcommit.com/learn/git/commands/git-show.md): git show prints one Git object: a commit with its diff, a tag, a directory listing or a file from any revision. Examples and the flags worth knowing. - [git stash: a drawer for half-finished work](https://initialcommit.com/learn/git/commands/git-stash.md): git stash saves your uncommitted changes as a hidden commit and cleans your working directory. Watch it on a real repository, see what it leaves behind, and learn what a stash actually is under the hood. - [git stash apply: restore the changes, keep the entry](https://initialcommit.com/learn/git/commands/git-stash-apply.md): git stash apply puts a stash's changes back in your working directory and keeps the entry. Watch it on a real repository and learn when --index matters. - [git stash drop: throwing one stash away](https://initialcommit.com/learn/git/commands/git-stash-drop.md): git stash drop deletes one stash entry. See it on a real repository, note the hash Git prints, and learn how to recover a stash you dropped by mistake. - [git stash -u: stashing the new files too](https://initialcommit.com/learn/git/commands/git-stash-include-untracked.md): git stash -u stashes new, untracked files along with your edits. Watch three files go into one stash, see how it differs from plain git stash, and when to use -a. - [git stash list: reading the shelf](https://initialcommit.com/learn/git/commands/git-stash-list.md): git stash list shows every stash entry, newest first. See what a line like stash@{0} WIP on main means, and the options that make the list easier to read. - [git stash pop: getting the drawer back out](https://initialcommit.com/learn/git/commands/git-stash-pop.md): git stash pop reapplies your most recent stash and removes it from the list. Watch it on a real repository, see what comes back staged and what doesn't, and learn what happens when the stash no longer applies cleanly. - [git status: reading the three lists](https://initialcommit.com/learn/git/commands/git-status.md): git status compares your working directory, the staging area and HEAD, and lists every file that differs as modified, staged or untracked. Here is what each list means, drawn as the three places a file can be in Git, and which command moves a file between them. - [git switch: change branches, nothing else](https://initialcommit.com/learn/git/commands/git-switch.md): git switch moves HEAD to another branch and updates your files to match it, and does nothing else. Watch it on a real repository and see why Git added a second command for something checkout could already do. - [git switch -c: a new branch from where you are](https://initialcommit.com/learn/git/commands/git-switch-c.md): git switch -c creates a branch at your current commit and moves onto it. Watch it on a real repository, see that nothing else changes, and learn how to branch from a different commit. - [git switch --detach: detached HEAD, on purpose](https://initialcommit.com/learn/git/commands/git-switch-detach.md): git switch --detach moves HEAD onto a commit instead of a branch, so you can look around or build on it without moving any branch. See it on a real repository, why Git asks for the flag, and when to detach on purpose. - [git tag: a name that never moves](https://initialcommit.com/learn/git/commands/git-tag.md): git tag labels your current commit with a name that stays put when you commit again. Watch git tag create one on a real repository, see how it differs from a branch, and learn why tags don't push on their own. - [git tag -d: removing a tag, here and on the remote](https://initialcommit.com/learn/git/commands/git-tag-delete.md): git tag -d removes a tag from your repository and leaves the commit alone. Watch it on a real repository, then delete the tag from the remote too. - [git worktree add: two branches checked out at once](https://initialcommit.com/learn/git/commands/git-worktree-add.md): git worktree add checks a branch out into a second directory that shares your repository's history. Watch it on a real repository and see when it beats stashing or cloning. - [git worktree remove: putting the second directory away](https://initialcommit.com/learn/git/commands/git-worktree-remove.md): git worktree remove deletes a linked worktree's directory and registration but keeps its branch. See it on a real repository, plus --force and prune. ## Learn Git: guided lessons Short scenarios played on an interactive graph of a real repository; each step simulates a command, and a question lets the learner compare the outcomes of several commands. - [Level 1: Git overview](https://initialcommit.com/learn/git/levels/git-overview): The Git journey. What a coding project is, how people work on one together, and why they need a system to control the versions. - [Level 2: Init & config](https://initialcommit.com/learn/git/levels/init-and-config): The Git journey. What a Git repository is, how Git commands work, and how to create and configure your first repository. - [Level 3: Add & commit](https://initialcommit.com/learn/git/levels/add-and-commit): The Git journey. Create and edit code files, add their changes to Git's staging area, and commit them onto pages of the scrapbook. - [Level 4: Log & status](https://initialcommit.com/learn/git/levels/log-and-status): The Git journey. Use Git's log to see your commit history, and check the status of your working directory. - [Level 5: Clone & remote](https://initialcommit.com/learn/git/levels/clone-and-remote): The Git journey. Make a copy of an existing repository, and link your original to it so the two can share pages. - [Level 6: Push & pull](https://initialcommit.com/learn/git/levels/push-and-pull): The Git journey. Push your local commits to a remote repository, and pull a friend's commits back into yours. - [Level 7: Branch & switch](https://initialcommit.com/learn/git/levels/branch-and-switch): The Git journey. Create a new branch, switch between branches, and watch two storylines split apart. - [Level 8: Merge](https://initialcommit.com/learn/git/levels/merge): The Git journey. Merge one branch into another, and learn when Git creates a merge commit versus fast-forwarding. - [Level 9: Tag](https://initialcommit.com/learn/git/levels/tag): The Git journey. Tag commits to mark important points in your history, and remove a tag you no longer need. - [Level 10: Stash](https://initialcommit.com/learn/git/levels/stash): The Git journey. Stash uncommitted changes to clear your table, then bring them back when you are ready. - [Level 11: Restore](https://initialcommit.com/learn/git/levels/restore): The Git journey. Move a staged change back to the working directory, and discard changes you no longer want. - [Level 12: Revert](https://initialcommit.com/learn/git/levels/revert): The Git journey. Undo the changes from an earlier commit by adding a new commit that does the opposite. - [Level 13: Reset](https://initialcommit.com/learn/git/levels/reset): The Git journey. Repoint a branch marker to an earlier commit, and see what Git does with the changes that would be lost. - [Level 14: Rebase](https://initialcommit.com/learn/git/levels/rebase): The Git journey. Transfer a whole branch of commits onto a new base commit, and learn why that rewrites history. - [Level 15: Detached HEAD](https://initialcommit.com/learn/git/levels/detached-head): The Git journey. Point HEAD at a commit with no branch, understand why it is useful, and get back out safely. - [Level 16: Remove & rename](https://initialcommit.com/learn/git/levels/remove-and-rename): The Git journey. Remove a file Git tracks, rename another, and commit both so the history records them. ## Tools - [git-sim](https://initialcommit.com/tools/git-sim): simulate any Git command in your own repository and see an interactive before / after graph, with a pre-flight check for AI coding agents - [git-dummy](https://initialcommit.com/tools/git-dummy): generate Git repositories with the history, remote and working-tree state you ask for, with named scenarios for tutorials and test suites - [git-story](https://initialcommit.com/tools/git-story): animated videos of a repository's history - [git-tagup](https://initialcommit.com/tools/git-tagup): tag commits from version numbers in their messages ## Git Commands & Git Cheat Sheets - [Rundown of the Git Archive Command](https://initialcommit.com/blog/git-archive.md): Create backups & share code by mastering git archive. Learn how to use flags & subcommands, and understand the limitations of git archive - [What is git citool? | Interactive commits in Git](https://initialcommit.com/blog/git-citool.md): Learn about the powerful git citool command that simplifies the process of code review and integration with an easy-to-understand graphical interface. - [git describe Command | git describe examples and usage](https://initialcommit.com/blog/git-describe.md): Learn how to use the Git describe command to accurately label and track the version of your code repository. Get tips on using tags and annotated tags to make the most of this useful tool. - [Git Submodule | Tracking sub-repos within your Git repo](https://initialcommit.com/blog/git-submodule.md): Learn to easily reuse code from other projects with the versatile git submodules command. - [git am | Apply an email patch in Git](https://initialcommit.com/blog/git-am.md): In this article, we'll discuss how the email patch recipient can apply patches that they receive through email to their local Git repository as a new commit. - [git bundle | A Guide for Bundling Git Repos](https://initialcommit.com/blog/git-bundle.md): Use git bundle to utilize Git in an offline or secure setting. - [git send-email | Send a patch by email in Git](https://initialcommit.com/blog/git-send-email.md) - [git format-patch | Create a patch in Git](https://initialcommit.com/blog/git-format-patch.md): In this article, we explain how to use the git format-patch command to enable Git email collaboration. - [git gc | Git garbage collection for orphaned, dangling objects](https://initialcommit.com/blog/git-gc.md): A complete guide to using the git gc command for garbage collection in your Git repo. - [git clean | Delete untracked files in Git](https://initialcommit.com/blog/git-clean.md): In this article, we'll explain how to use the git clean command to remove untracked files from your Git working directory. - [git notes | Enhance Git Commit Messages with Notes](https://initialcommit.com/blog/git-notes.md): In this article, we will discuss what Git notes are and how to use them in your Git workflow. - [git reflog | Understanding Git's reflog feature](https://initialcommit.com/blog/git-reflog.md): A complete guide to using the git reflog command. - [git push | Pushing changes to a remote repository](https://initialcommit.com/blog/git-push.md): Git push updates a remote repository with your local changes. Continue reading to follow step-by-step instructions for the git push command, including force pushing. - [git shortlog | Use git shortlog to summarize Git's log output](https://initialcommit.com/blog/git-shortlog.md): In this article, we'll explain how to use the git shortlog command to create a summary of Git's log output. - [git cherry-pick | Learn to Cherry Pick Commits in Git](https://initialcommit.com/blog/git-cherry-pick.md): A complete guide to using the git cherry pick command. - [How to file a bug report in Git?](https://initialcommit.com/blog/git-bugreport.md): In this article, we'll discuss what to do if you find a bug in Git, how to test it out locally to make sure it's a bug, and how to report it to the Git maintainer and dev community so they can hopefully fix it. - [git clone | How to Clone a Repo in Git](https://initialcommit.com/blog/git-clone.md): A complete guide to using the git clone command. - [A Comprehensive Guide to Git Merge](https://initialcommit.com/blog/git-merge.md): Don’t let git merge or merge conflicts intimidate you. Learn all about git merge, fast forward and 3-way merging, git conflicts, and how to merge and handle git conflicts with ease. - [git blame | How to Blame in Git](https://initialcommit.com/blog/git-blame.md): Got a new bug and don't know where it came from? Git blame is there to help you track down who authored specific lines of a committed file, so you can find the culprit. - [Git Rebase | A Guide to Rebasing in Git](https://initialcommit.com/blog/git-rebase.md): Learn both the theory and practice of git rebase in this comprehensive yet concise guide. - [git-story: Create mp4 Video Animations of Your Git Commit History with 1 Command](https://initialcommit.com/blog/git-story.md): Git Story is a tool that enables developers to create .mp4 video animations of their Git repository commit history, branches, and tags. - [Git Fetch | How Git Fetch Works](https://initialcommit.com/blog/git-fetch.md): Learn how git fetch works, how git fetch compares to git pull, and how to use git fetch effectively. - [A Guide to Git Stash: Save Changes for Later](https://initialcommit.com/blog/git-stash.md): Want to shelve a feature and work on something else? Learn how to use Git Stash to save changes for later. - [Git Diff – What is it, Uses & Applications](https://initialcommit.com/blog/git-diff.md): The pragmatic yet comprehensive guide to getting the most out of git diff for beginners and pros alike. - [git log | A Guide to Using the log Command in Git](https://initialcommit.com/blog/git-log.md): A comprehensive guide for using the git log command. - [Git Bisect | How to Use Git Bisect](https://initialcommit.com/blog/git-bisect.md): Learn how to use the Git Bisect command to efficiently locate problematic commits and remove regression bugs. - [Git Reset | The Git Reset Command Explained ](https://initialcommit.com/blog/git-reset.md): A guide to use the git reset command as a part of your Git workflow. - [Git Tag | Git Tagging Explained](https://initialcommit.com/blog/git-tag.md): A guide for learning the git tag command and how it fits into the Git workflow. - [Git Config | Setup Git Environment](https://initialcommit.com/blog/git-config.md): Learn to setup a local Git environment by installing Git and using the Git config command. - [Git Add | Adding Changes to Git’s Staging Area](https://initialcommit.com/blog/git-add.md): Using git add to stage changes in a git workflow. - [Git-RM Uses & Purpose | A No-Nonsense Git RM Tutorial](https://initialcommit.com/blog/git-rm.md): In this article, we will focus on the git rm command, its various options, and how it can maximize your understanding of Git and collaboration. - [Git-show | How to Use Git Show With Examples](https://initialcommit.com/blog/git-show.md): How to use the git show command to view commits, tags, trees, and blobs in your Git repository. - [Git Status Command | Uses, Applications & Related Commands](https://initialcommit.com/blog/git-status.md): A straightforward how-to tutorial for those looking to learn the git status command. - [Git Mv | How To Use Git-Mv To Rename And Move Files](https://initialcommit.com/blog/git-mv.md): How to use the git mv command when moving or renaming files in a Git repository. - [Git Cheat Sheet: 14 Essential Git Commands for Experts](https://initialcommit.com/blog/git-cheat-sheet-expert.md): In this article, we’ll discuss 14 essential Git commands for advanced users. - [Git Cheat Sheet: 12 Essential Git Commands for Intermediate Users](https://initialcommit.com/blog/git-cheat-sheet-intermediate.md): In this article, we’ll discuss 12 essential Git commands for intermediate users. - [Git cheat sheet: 12 essential Git commands for beginners](https://initialcommit.com/blog/Git-Cheat-Sheet-Beginner.md): In this article, I will explain 12 essential Git commands that are especially important for a beginner. ## Git Guides & Git Tutorials - [Design mistakes I made in my open-source project git-sim in 2022](https://initialcommit.com/blog/git-sim-mistakes-and-fixes.md): Three decisions I made designing git-sim in 2022 that turned out to be mistakes, and how I fixed them. - [I struggled with Git, so I'm making a game to spare others the pain](https://initialcommit.com/blog/im-making-a-git-game.md): I struggled with Git, so I'm making a game to spare others the pain - [Git-Sim 3 Month Dev Update: Community response, New Features, & The Future](https://initialcommit.com/blog/git-sim-3-month-dev-update.md): The main purpose of this post is to provide a general dev update on what's new in Git-Sim over the past 3 months, and where Git-Sim is headed in the future. - [git-sim: Visually simulate Git operations in your own repos](https://initialcommit.com/blog/git-sim.md): git-sim: Visually simulate Git operations in your own repos with a single terminal command - [What is an Annotated Tag in Git?](https://initialcommit.com/blog/git-annotated-tag.md) - [How are Git's objects linked together?](https://initialcommit.com/blog/git-objects-linked-together.md) - [What is a commit in Git?](https://initialcommit.com/blog/what-is-a-commit-in-git.md): In this article, we'll explain everything you need to know about Git commits. - [What is a tree in Git?](https://initialcommit.com/blog/what-is-a-tree-in-git.md): In this article, we'll discuss everything you need to know about trees in Git. - [What is a blob in Git?](https://initialcommit.com/blog/what-is-a-blob-in-git.md): In this article, we'll discuss everything you need to know about blobs in Git. - [How to Create a New Git Repository | Start a Github Repo](https://initialcommit.com/blog/git-create-repository.md): In this article, you will learn how to create a new Git repository, configure it, and commit changes to it. - [Git Branches | Git List Branches & Other Branch Commands ](https://initialcommit.com/blog/git-branches.md): Learn what Git branches are and how to use branches in Git - [Saving Changes in Git | How To & Examples](https://initialcommit.com/blog/saving-changes-in-git.md): The practical and comprehensive guide to saving changes in Git. Easily learn git status, add, commit, stash, and push commands. - [A Comprehensive Guide to Undoing Changes In Git](https://initialcommit.com/blog/undoing-changes-in-git.md): Confused about how to undo changes in Git? Want to understand when to use specific commands? Check out this comprehensive guide to learn the 5 best commands for undoing changes in Git at each stage of development. - [How to Remove Local Untracked Files in Git Working Directory](https://initialcommit.com/blog/git-remove-untracked-files.md): In this article, we'll discuss different types of untracked files, whether you should remove them, and some different methods for dealing with them including .gitignore, manual deletion, and git clean. - [Git Commit Messages: Best Practices & Guidelines](https://initialcommit.com/blog/git-commit-messages-best-practices.md): The practical guide to everything you've ever wanted to know about working with Git commit messages. - [Using PyCharm with Git](https://initialcommit.com/blog/using-pycharm-with-git.md): In this article, we'll discuss how to get started using Git integration for a new or existing PyCharm project. - [fatal: not a git repository (or any of the parent directories): .git](https://initialcommit.com/blog/fatal-not-a-git-repository-or-any-of-the-parent-directories.md): In this article, we'll discuss the reasons for the error `fatal: not a git repository (or any of the parent directories): .git` and how to fix it. - [How to paste in Git Bash](https://initialcommit.com/blog/how-to-paste-in-git-bash.md): In this article, we will discuss how to paste in Git Bash. - [What is Git HEAD? | The Concept of HEAD in Git - Explained](https://initialcommit.com/blog/what-is-git-head.md): In this article, we will answer the question What is Git HEAD? Learning about Git HEAD will add to your knowledge and understanding of Git's version control capabilities. - [4 Git Commands that Rewrite Commit History](https://initialcommit.com/blog/4-git-commands-rewrite-commit-history.md): In this article, we’ll cover some of the most common Git commands used to rewrite history. - [What is an initial commit in Git?](https://initialcommit.com/blog/What-Is-An-Initial-Commit-In-Git.md): This article describes what an initial commit is in the Git version control system. ## Advanced Git & Version Control Systems (VCS) - [git banned.h: Why Git's maintainers have a list of banned standard C library functions](https://initialcommit.com/blog/git-banned-functions.md): In this article, we'll take a closer look at how the C function ban is implemented, the specific C functions that have been banned from use, and why these functions were likely banned from the codebase. - [Pijul - The Mathematically Sound Version Control System Written in Rust](https://initialcommit.com/blog/pijul-version-control-system.md): In this article, we'll discuss Pijul - an alpha stage version control system that is gaining traction in the community. - [Q&A with the Creator of the Pijul Version Control System](https://initialcommit.com/blog/pijul-creator.md): This article is a Q&A format with Pierre-Étienne Meunier, the creator of the Pijul VCS. - [The Evolution of Version Control System (VCS) Internals - Part 2](https://initialcommit.com/blog/Evolution-of-VCS-Internals-2.md): Compare and contrast the inner workings of some of the most historically significant Version Control Systems, including Perforce Helix Core, BitKeeper, Darcs, Monotone, Bazaar, and Fossil. - [Version Control Systems | A Technical Guide to VCS Internals](https://initialcommit.com/blog/Technical-Guide-VCS-Internals.md): Learn what a version control system is and provide technical details of some of the most popular version control systems like SCCS, RCS, CVS, Subversion, Git, and Mercurial. - [Checkout Initial Commit](https://initialcommit.com/blog/Learn-Git-Checkout-Initial-Commit.md): We explain how to check out the initial commit of any open source project using Git. Examining the initial commit is a great way to learn how a program's code works. - [Baby Git Staging Index](https://initialcommit.com/blog/Learn-Git-Staging-Index.md): Files are added to the staging area before a commit in Git. This is possible due to Git's staging index. We explain how this works using the initial commit of Git's code. - [Git's Original Object Database](https://initialcommit.com/blog/Learn-Git-Object-Database.md): Any time a file is tracked with Git, it is compressed, hashed, and stored in the object database. We explain how this works using the initial commit of Git's code. - [An Overview of C Header Files & Git's Original C Header File](https://initialcommit.com/blog/Learn-Git-Header-Files.md): This article discusses how to use and include C header files in the C programming language. It also discusses the original C header file in Git's initial commit. - [What is a Makefile? | Turning Git's Source Code into a Program](https://initialcommit.com/blog/Learn-Git-Makefile.md): Makefiles are used to build and compile programs. We explain how Git's original Makefile works line by line to help clarify how programs like Git are developed. - [The Definitive Guide to Git's Code](https://initialcommit.com/blog/Learn-Git-Code-Definitive-Guide.md): Most guides talk about how to use Git. We want you to understand how Git's code actually works. We explain this in an accessible way in this definitive guide to Git's code. - [Decoding Git Guidebook: Chapter 2](https://initialcommit.com/blog/Learn-Git-Guidebook-For-Developers-Chapter-2.md): This overview chapter of the Decoding Git Guidebook for Developers will discuss the key components of the Git application from a code perspective - [Decoding Git - Guidebook For Developers: Introduction To Git's Code](https://initialcommit.com/blog/Learn-Git-Guidebook-For-Developers-Chapter-1.md): This introductory chapter of the Decoding Git Guidebook for Developers will set a foundation for understanding how Git's code works - [Baby Git Release](https://initialcommit.com/blog/Learn-Git-Guidebook-For-Developers-Release.md): Baby Git is an open source project that we have released for those that want to dip their toes into the world of the Git application ## Git General Knowledge - [Source Code Management | Git Tutorial](https://initialcommit.com/blog/source-code-management.md): A description of source code management, and how Git is used as a version control system for source code management. - [16 Best Git Books of 2022 | How to Learn Git](https://initialcommit.com/blog/best-git-books-2022.md): In this article, we'll discuss the best Git books of 2022 with categories including, "Best Beginner Git Books", "Best Budget Git Books", and "Best Advanced Git Books". - [Merkle trees in Git and Bitcoin](https://initialcommit.com/blog/git-bitcoin-merkle-tree.md): We will discuss how Merkle trees are utilized by both Git and Bitcoin. - [The Distributed Nature of Git and Bitcoin](https://initialcommit.com/blog/git-bitcoin-distributed-nature.md): This article is Part 1 of our series on the similarities between Git and Bitcoin. We will discuss distributed systems and how Git and Bitcoin leverage them in their architecture. - [What % of Git commit messages use the imperative mood?](https://initialcommit.com/blog/Git-Commit-Message-Imperative-Mood.md): In this article, we'll estimate the percentage of commit messages that use the imperative mood. - [How did Git get its name?](https://initialcommit.com/blog/How-Did-Git-Get-Its-Name.md): In this article, we will discuss why Linus Torvalds, the creator of Git, chose this name for his Version Control System (VCS). In other words, why is Git called Git? What does Git stand for? What does Git mean? - [What is the most popular initial commit message in Git?](https://initialcommit.com/blog/What-Is-The-Most-Popular-Initial-Commit-Message-In-Git.md): This article analyzes different initial commit messages in the Git version control system using a GitHub dataset from Google BigQuery. - [Git started with the best version control system](https://initialcommit.com/blog/git-version-control.md): Why learning Git is a great start to a Software development career. It is a version control system used for collaboration in Software development. A great tool! ## Python - [Python Getattr() Method – How it Works & Examples](https://initialcommit.com/blog/python-getattr.md): In this article, you will learn about the getattr() function in Python, the \_\_getattr__ and \_\_getattribute__ special methods, and the dir() function. These concepts will take your knowledge of Python attributes to the next level. - [Pandas.DataFrame.sort_index | Python | Initial Commit](https://initialcommit.com/blog/pandas-DataFrame-sort_index.md): In this tutorial you will learn how to use the pandas.head() function and how it can be used in machine learning, as well as how to use the pandas dataframe.sort_index() function. - [Python Reserved Keywords (Full List) | Initial Commit](https://initialcommit.com/blog/python-reserved-words.md): Exploring reserved keywords in the Python Programming languaage. - [Python Head | Pandas DataFrame: head() Method](https://initialcommit.com/blog/python-pandas-head.md): In this tutorial you will learn how to use the pandas.head() function and how it can be used in machine learning, as well as how to use the pandas.tail() function. - [IOError in Python | How to Solve with Examples ](https://initialcommit.com/blog/python-ioerror.md): Covering what the IOError is in Python and how to resolve it. - [Python ValueError Exception – How to Identify & Handle](https://initialcommit.com/blog/valueerror-python.md): In this article, you will learn about the various ways ValueError occurs, and how you can resolve and avoid them in the future. - [Python RuntimeError (Examples & Use Cases) | Initial Commit](https://initialcommit.com/blog/python-runtimeerror.md): In this article, you will learn about python runtime errors, some common examples and how to fix them - [Python Newline Character \n | Use Cases and Examples](https://initialcommit.com/blog/python-new-line.md): This article outlines what the newline character is and its importance in Python; from general information to applied use-cases. - [Python Multiline String](https://initialcommit.com/blog/python-multiline-string .md): In this article, you will learn how to define multiline strings in Python in various ways efficiently and taking into account code readability. - [An Overview of Web Scraping in Python](https://initialcommit.com/blog/python-web-scraping.md) - [Replace Character in String Python | Python String Replace()](https://initialcommit.com/blog/python-string-replace.md): In this article, you will learn how to replace a character in a string in Python using the replace() method and build your own replace function. - [The AttributeError: __enter__ Python Error Solved](https://initialcommit.com/blog/python-error-attributeerror-enter.md): In this article, you will learn how to fix and prevent the AttributeError: \_\_enter__ by understanding what attributes, context managers, and common mistakes that can lead to this error are. - [Python ord() Function with Examples | Initial Commit](https://initialcommit.com/blog/python-ord-function .md): In this article, you'll take an advanced look at ordinal characters in Python. More specifically, you'll learn how to apply the use of ordinal characters for string comparison. Let's get started! - [NumPy: ndarray.flatten() function | NumPy.matrix.flatten](https://initialcommit.com/blog/numpy-ndarray-flatten.md): In this article, you will learn what we mean by "flatten", and how you can flatten ndarrays or matrices with the flatten method in Python with NumPy. - [How to Fix: Positional Argument Follows Keyword Argument in Python](https://initialcommit.com/blog/positional-argument-follows-keyword-argument-python.md): In this article, you will learn how to fix the "SyntaxError: Positional Argument Follows Keyword Argument" in Python by understanding what positional and keyword arguments are, which will help you prevent this error from occurring in the future. - [Python next() Function with Examples | Initial Commit](https://initialcommit.com/blog/python-next-function.md): In this article, you will learn what iterators are, how you can use the next() function on iterators, and maximize your usage of the next() function. - [An Intro to the Python HTTP Server](https://initialcommit.com/blog/python-http-server.md): In this article, we'll discuss how the Python http server module can be used from the terminal, and then we'll cover how to use it within a Python script. - [__repr__ in Python](https://initialcommit.com/blog/repr-in-python.md): In this article, we will look at the special method `__repr__` in Python, and understand how it is used for defining objects. - [NumPy around() in Python](https://initialcommit.com/blog/np-around.md): In this article, we'll discuss the Numpy around() function and why it can be better than default options for rounding numbers in Python. - [Assignment Operators in Python](https://initialcommit.com/blog/assignment-operators-python.md): In this blog post, we will discuss what the assignment operators are, how to use them in Python, and the benefits and drawbacks of doing so. - [Python List Print](https://initialcommit.com/blog/python-list-print.md): In this article, we will explore various ways to print lists in Python along with the benefits of each. - [Using raw_input() in Python 3](https://initialcommit.com/blog/raw-input-python-3.md): In this article, we will review how to accept user input in Python 2 and Python 3. We will look at what changed in Python 3 and discuss why these changes were made. - [Python Zip Two Lists](https://initialcommit.com/blog/python-zip-two-lists.md): In this article, we will explore how we can zip two lists with the Python zip function. - [Python Yield vs Return](https://initialcommit.com/blog/python-yield-vs-return.md): In this article, we discuss the differences between yield and return in Python. - [Python isAlpha, isAlnum, isDigit, isDecimal, isNumeric, & Other String Methods](https://initialcommit.com/blog/python-isalpha-string-method.md): In this article, you'll learn eight different string methods that you can use to check just what kind of character data is contained within a given string. - [Python zfill Method](https://initialcommit.com/blog/python-zfill-method.md): In this article, we explore Python's built-in method zfill(). We discuss how it interacts with different inputs and also suggest some alternatives depending on the situation. - [Python Ternary Operator](https://initialcommit.com/blog/python-ternary-operator.md): In this article, we will look at how ternary operators are used in Python with various formats. - [Pow() Function in Java and Python](https://initialcommit.com/blog/pow-function-java-python.md): In this article, we'll describe how to use the pow() function in the Java and Python libraries. - [Python all() Function](https://initialcommit.com/blog/python-all-function.md): In this article, we will explore the all() Python function and look at how it handles various data structures and data types. - [Python Ceiling](https://initialcommit.com/blog/python-ceiling.md): In this article, we will explore the `math.ceil(...)` function. Learn how it interacts with mathematical constants and negative numbers. And compare it to the floor function `math.floor(...)`. - [Python Sort List of Tuple](https://initialcommit.com/blog/python-sort-list-of-tuple.md): In this article, we will explore lists, tuples, lambda functions, and sorting. We will then use our understanding of these concepts to sort a list of tuples in Python. - [Python SyntaxError: can't assign to function call](https://initialcommit.com/blog/python-syntaxerror-cant-assign-to-function-call.md): In this article, we will explore variable assignment, function calls, and syntax errors. We will then use our understanding of these concepts to fix or avoid the "SyntaxError: can't assign to function call" error in Python. - [Python List Length](https://initialcommit.com/blog/python-list-length.md): In this article, you'll take a quick look a few different ways to find the length of a list in Python. - [Python Square Root](https://initialcommit.com/blog/python-square-root.md): In this article, you'll take a quick look at four different ways to find the square root of a given number in Python. - [Python Absolute Value](https://initialcommit.com/blog/python-absolute-value.md): In this article, you'll take a quick look at how to find the absolute value of a given number in Python. - [7 Key Takeaways from the Zen of Python](https://initialcommit.com/blog/zen-of-python.md): In this article, you'll take a look at the different rules of thumb posited by the Zen of Python, as well as how to implement them in your development workflow. - [Python Lowercase String](https://initialcommit.com/blog/python-lowercase.md): In this article, we discuss some general aspects of Python strings that will help us understand the Python lowercase method, make Python strings lowercase, and check whether a Python string is lowercase. - [Python is not recognized as an internal or external command](https://initialcommit.com/blog/python-is-not-recognized-as-an-internal-or-external-command.md): In this article, you'll take a closer look at this the error 'python' is not recognized as an internal or external command and see a few quick fixes for it. - [Sum Function Python](https://initialcommit.com/blog/sum-function-python.md): In this article, you'll get a detailed look at how to use the sum function in Python, as well as how it differs from the plus sign operator. - [Check If Python String Contains Substring](https://initialcommit.com/blog/python-string-contains.md): In this article, you'll take a quick look at 4 different ways to check whether one Python string contains another. - [Return Outside Function error in Python](https://initialcommit.com/blog/return-outside-function.md): In this article, you'll take a closer look at the return statement and how to fix the return outside function Python error. - [Writing a Python While Loop with Multiple Conditions](https://initialcommit.com/blog/python-while-loop-multiple-conditions.md): In this article, you'll take a more advanced look at indefinite iteration in Python. More specifically, you'll learn how to write a Python while loop with multiple conditions. - [A Detailed Look at the Python floor() Function](https://initialcommit.com/blog/python-floor-function.md): In this article, you'll take a closer look at the Python floor() function and gain a solid understanding of what values you can expect it to return. - [Ultimate Guide to the Python min() Function](https://initialcommit.com/blog/python-min-function.md): In this article, you'll get a detailed look at how the Python min() function works, what objects you can pass to it, and what values you can expect it to return. - [Best Machine Learning Toolkits for Python in 2021](https://initialcommit.com/blog/best-machine-learning-toolkits-python.md): Here, we’ll discuss four of the most popular machine learning toolkits for Python. To provide a comparison between these different toolkits, we will demonstrate training a neural network on the Iris dataset a very simple dataset that is popular in the machine learning space. - [Deploy a python package to PyPI](https://initialcommit.com/blog/Deploy-Python-Package-PyPI.md): In this article, we explain how Pip and PyPI work, how to structure a Python package, and how to deploy a Python package to PyPI. - [Python 3 functions - learn Python programming tutorial](https://initialcommit.com/blog/python-functions-programming.md): Learn Python programming by learning functions in python. Python 3 is the latest python version and the best python version. Python is great for beginners and learning programming. This is a free python tutorial to help you get started. - [Top 5 best books for learning Python programming](https://initialcommit.com/blog/learn-python-programming.md): Learn Python with these 5 python programming books. Hand selected by trusted industry reviews. These books are great for beginner to expert python programmers. Python 3? These books provide you the foundation to learn any python version. - [How to optimize port-scanning with a multi-threaded approach](https://initialcommit.com/blog/portscan-programming-security.md): System Admins, here is a way to optimize your port scanning. ## Java - [A Guide to Using the useState and useEffect Hooks in React](https://initialcommit.com/blog/usestate-useeffect-hooks-react.md): In this article, we'll discuss two of the most important hooks used in almost every React component, the useState and useEffect hooks. - [Getting Started with Java Visualizer](https://initialcommit.com/blog/java-visualizer.md): In this article, we'll discuss getting started with Java Visualizer - a visual tool that can be useful for Java developers of all skill levels to better understand and troubleshoot their code. - [The Difference Between Java and JavaScript](https://initialcommit.com/blog/difference-between-java-and-javascript.md): In this article, we will discuss the difference between Java and JavaScript. The biggest similarity might be... you’ve guessed it! They both have the word "Java" in their name, which is a type of Indonesian coffee. And the obvious difference is that they are two different programming languages that fulfill different needs on different occasions. - [Convert Int to String Java](https://initialcommit.com/blog/int-to-string-java.md): In this article, we'll discuss several methods to convert int to string in Java, and as a bonus we'll touch on conversion from other numeric data types as well. - [How to learn Java with no programming experience](https://initialcommit.com/blog/learn-java-no-programming-experience.md): In this article, we will outline how you can learn Java with no programming experience. - [Secrets To Landing Your First Job As A Java Developer](https://initialcommit.com/blog/landing-a-java-developer-job.md): Java ranks second in the list of the world's most popular programming languages and has a market share of 16.79%. Java powers thousands of web apps, servers, and android applications like Wikipedia Search, Minecraft, and many more. But how can you land a job as a Java developer? Let us show you how. - [LDAP authentication in Java](https://initialcommit.com/blog/ldap-authentication-in-java.md): In this tutorial, we share the common code block that is used to connect to an LDAP server in Java. - [How to return a custom class from Hibernate query](https://initialcommit.com/blog/how-to-return-a-custom-class-from-hibernate-query.md): Hibernate is one of the most popular ORM frameworks in Java. Through Hibernate, developers deal with Java POJOs for doing CRUD operations on the database. - [How to create a jar file with a package structure](https://initialcommit.com/blog/how-to-create-a-jar-file-with-a-package-structure.md): This tutorial allows you to archive a list of compiled classes residing under a particular package in the form of a JAR file. - [How to reset password in Oracle 11g](https://initialcommit.com/blog/how-to-reset-password-in-oracle-11g.md): How to reset password in Oracle 11g - [Java – Convert Object to Map](https://initialcommit.com/blog/java-convert-object-to-map.md): This tutorial provides several ways of converting a Java object to a Map in Java. - [How to schedule a tomcat service restart in windows](https://initialcommit.com/blog/how-to-schedule-a-tomcat-service-restart-in-windows.md): This tutorial provides a step-by-step guide on how to create a windows task which restarts the tomcat service at a specific time frame. - [Eclipse – Restore deleted file from local history](https://initialcommit.com/blog/eclipse-restore-deleted-file-from-local-history.md): This tutorial shows how to restore a deleted file from the local history in Eclipse. - [How to stop/start windows service via batch or cmd](https://initialcommit.com/blog/how-to-start-stop-windows-service-via-batch-or-cmd.md): This tutorial describes how to stop/start a windows service via batch or cmd. - [Axis2 – Generate a SOAP client from WSDL](https://initialcommit.com/blog/axis2-generate-a-soap-client-from-wsdl.md): This tutorial provides a step by step guide on how to generate a SOAP client from WSDL using Apache Axis2. - [Eclipse – Generate a SOAP client from WSDL](https://initialcommit.com/blog/eclipse-generate-a-soap-client-from-wsdl.md): This tutorial provides a step by step guide on how to generate a SOAP client from WSDL using Eclipse. - [How to create a zip file in Java](https://initialcommit.com/blog/how-to-create-a-zip-file-in-java.md): In this tutorial, we show how to create a zip file from multiple files in Java. - [How to download a zip file in Java](https://initialcommit.com/blog/how-to-download-a-zip-file-in-java.md): Now for zip files, things are a bit different, in this tutorial, we specifically show how to write a zip file to an HTTP response and download it to the browser. - [Spring – @Autowired annotation with multiple implementations](https://initialcommit.com/blog/spring-autowired-annotation-with-multiple-implementations.md): In this tutorial, we explain how to use the @Autowired annotation on an interface with multiple implementations. - [Spring Dynamic Factory Bean](https://initialcommit.com/blog/spring-dynamic-factory-bean.md): In this tutorial, we illustrate how to create a dynamic factory bean in Spring. - [How to upload files with Spring MVC](https://initialcommit.com/blog/how-to-upload-files-with-spring-mvc.md): In this tutorial, we discuss how to upload files with Spring MVC. - [Spring – Read files from classpath](https://initialcommit.com/blog/spring-read-files-from-classpath.md): In this tutorial, we discuss several ways of reading a resource file from classpath in a Spring MVC application. - [How to get the context path in a Spring Web application](https://initialcommit.com/blog/how-to-get-the-context-path-in-a-spring-web-application.md): In this tutorial, we discuss 2 ways for retrieving the context path in a Spring Web application. - [How to upload files to a servlet](https://initialcommit.com/blog/how-to-upload-files-to-a-servlet.md): In this tutorial, we discuss how to upload files to a servlet. - [How to launch Putty from WinSCP](https://initialcommit.com/blog/how-to-launch-putty-from-winscp.md): This tutorial describes how to launch Putty from WinSCP. - [Pass data from Spring controller to JSP](https://initialcommit.com/blog/pass-data-from-spring-controller-to-jsp.md): This tutorial describes how to pass data from a Spring controller to a JSP view. - [How to display line numbers in Eclipse](https://initialcommit.com/blog/how-to-display-line-numbers-in-eclipse.md): By default, Eclipse doesn’t display the line numbers in the text editor. This simple tutorial provides a step by step guide on how to activate this option. - [How to display line numbers in SQL Developer](https://initialcommit.com/blog/how-to-display-line-numbers-in-sql-developer.md): By default, SQL Developer doesn’t display the line numbers in the text editor. This simple tutorial provides a step by step guide on how to activate this option. - [Eclipse – Main class doesn’t show when exporting a runnable jar file](https://initialcommit.com/blog/eclipse-main-class-doesnt-show-when-exporting-a-runnable-jar-file.md): Sometimes when trying to export a runnable jar file in Eclipse, your main class doesn’t show up. This tutorial guides you on how to fix this issue. - [How to deploy Tomcat web application on port 80](https://initialcommit.com/blog/how-to-deploy-tomcat-web-application-on-port-80.md): In this tutorial, we describe how to deploy a Tomcat web application on port 80. - [Pass data from JSP to Spring controller](https://initialcommit.com/blog/pass-data-from-jsp-to-spring-controller.md): In this tutorial, we discuss several ways of passing data from a JSP view to a Spring controller. - [How to convert multi-page TIFF to PDF in Java](https://initialcommit.com/blog/how-to-convert-multi-page-tiff-to-pdf-in-java.md): This tutorial provides a very efficient way to convert a multi-page TIFF to PDF using iText library. - [How to rollback deleted records after commit in Oracle](https://initialcommit.com/blog/how-to-rollback-deleted-records-after-commit-in-oracle.md): Do you think it’s impossible to rollback your changes after you commit a Delete command? Well, it’s possible. - [How to install SSL certificate on multiple Tomcat nodes](https://initialcommit.com/blog/how-to-install-ssl-certificate-on-multiple-tomcat-nodes.md): This tutorial describes how to install a single SSL certificate on multiple Tomcat nodes. - [How to remove the application name in Tomcat URL](https://initialcommit.com/blog/how-to-remove-the-application-name-in-tomcat-url.md): In order to access a web application deployed on Tomcat, it is required by default to write the application name in the URL. - [How to deploy web applications on Tomcat](https://initialcommit.com/blog/how-to-deploy-web-applications-on-tomcat.md): In this tutorial, we describe 2 ways for deploying Java web applications on Tomcat application server. - [How to solve org.codehaus.jackson.map.JsonMappingException: Unrecognized field](https://initialcommit.com/blog/how-to-solve-org-codehaus-jackson-map-jsonmappingexception-unrecognized-field.md): This exception occurs when Jackson tries to map a JSON attribute to a POJO field and couldn’t find a setter method for this attribute or a copy constructor. - [How to implement an auto reloadable XML using Apache VFS](https://initialcommit.com/blog/how-to-implement-an-auto-reloadable-xml-using-apache-vfs.md): In this tutorial, we describe how to implement an auto reloadable XML using Apache VFS in Java. - [How to convert a maven project to a non-maven project in Eclipse](https://initialcommit.com/blog/how-to-convert-a-maven-project-to-a-non-maven-project-in-eclipse.md): Eclipse doesn’t provide a direct way to convert a Maven web project to a non-maven structure. In this tutorial, we provide an easy 2-steps way to do this. - [How to serve static resources in a web application](https://initialcommit.com/blog/how-to-serve-static-resources-in-a-web-application.md): In any web application, there exists a folder named WebContent that automatically holds .class and jar files. - [How to change the default deploy path of web resources in Eclipse](https://initialcommit.com/blog/how-to-change-the-default-deploy-path-of-web-resources-in-eclipse.md): When developing a web application in eclipse, the default deploy path of java classes is “WEB-INF/classes” and every folder defined under WebContent is automatically deployed under the root path of the application. - [How to change the default deploy directory of Tomcat in Eclipse](https://initialcommit.com/blog/how-to-change-the-default-deploy-directory-of-tomcat-in-eclipse.md): Here below we define the needed steps to change the default deploy directory of Tomcat in Eclipse. - [How to read a plain text file in Java](https://initialcommit.com/blog/how-to-read-a-plain-text-file-in-java.md): This tutorial shows several ways for reading plain text files in Java. - [How to write to a plain text file in Java](https://initialcommit.com/blog/how-to-write-to-a-plain-text-file-in-java.md): This tutorial shows several ways to write content to a text file in Java. - [How to modify XML using DOM in Java](https://initialcommit.com/blog/how-to-modify-xml-using-dom-in-java.md): In this article we show how to modify an XML document using DOM in Java. - [How to read XML using STAX parser](https://initialcommit.com/blog/how-to-read-xml-using-stax-parser.md): In this tutorial, we provide an example for parsing an XML document called Students.xml using STAX parser. - [How to read XML using SAX parser](https://initialcommit.com/blog/how-to-read-xml-using-sax-parser.md): SAX parser is yet another XML parser provided by JDK which parses documents in a more optimized and faster way. - [How to read XML file in Java](https://initialcommit.com/blog/how-to-read-xml-file-in-java.md): This tutorial shows how to read and parse an XML file in Java using a DOM parser. - [How to create XML file in Java](https://initialcommit.com/blog/how-to-create-xml-file-in-java.md): In this tutorial, we show how to create a new XML file using DOM parser provided by JDK. - [How to iterate a List in Java](https://initialcommit.com/blog/how-to-iterate-a-list-in-java.md): This tutorial shows several ways for iterating a List in Java. - [ClassNotFoundException vs NoClassDefFoundError](https://initialcommit.com/blog/classnotfoundexception-vs-noclassdeffounderror.md): ClassNotFoundException and NoClassDefFoundError occur when a required class is not found in the classpath at runtime. - [How to read input from console in Java](https://initialcommit.com/blog/how-to-read-input-from-console-in-java.md): This tutorial shows several ways for reading input from a console in Java. - [How to iterate a Map in Java](https://initialcommit.com/blog/how-to-iterate-a-map-in-java.md): This tutorial shows several ways for iterating a Map in Java. - [ArrayList vs Vector](https://initialcommit.com/blog/arraylist-vs-vector.md): ArrayList and Vector collections are used interchangeably for storing several items with the same type inside the memory. - [Hashtable VS HashMap](https://initialcommit.com/blog/hashtable-vs-hashmap.md): Hashing objects like HashMap and Hashtable are mostly used for storing and caching data as a key/value pairs inside the memory. - [Java – Convert byte[] to File](https://initialcommit.com/blog/java-convert-byte-to-file.md): This tutorial shows several ways to convert a byte[] array to File in Java. - [Java – Convert File to byte[]](https://initialcommit.com/blog/java-convert-file-to-byte.md): This tutorial shows several ways to convert a File object to a byte[] array in Java. - [Download file from a Web Application using Servlet](https://initialcommit.com/blog/download-file-from-web-application.md): This tutorial shows how to download a file from a web application using Servlet. - [Convert Java object to JSON](https://initialcommit.com/blog/convert-java-object-to-json.md): This tutorial shows 2 ways for converting Java objects to JSON. - [Convert JSON to Java Object](https://initialcommit.com/blog/convert-json-to-java-object.md): This tutorials shows 2 ways for converting a JSON string to a Java object. - [Java – Convert comma-separated String to List](https://initialcommit.com/blog/java-convert-comma-separated-string-to-list.md): This tutorial shows several ways for converting a comma-separated String to a List in Java. - [Java – Convert InputStream to String](https://initialcommit.com/blog/java-convert-inputstream-to-string.md): This tutorial shows several ways to convert an InputStream to a String in Java. - [Disable save password prompt on login forms using CSS](https://initialcommit.com/blog/disable-save-password-prompt-on-login-forms-using-css.md): In this tutorial, we provide a workaround solution using html and CSS which disables the “Save Password” prompt on login forms and works perfectly on all popular browsers. - [Java – Convert InputStream to File](https://initialcommit.com/blog/java-convert-inputstream-to-file.md): This tutorial shows several ways to convert InputStream to File in Java. - [Java – Convert List to Array](https://initialcommit.com/blog/java-convert-list-to-array.md): This tutorial shows several ways to convert a List to Array in Java. - [Java – Convert List to Map](https://initialcommit.com/blog/java-convert-list-to-map.md): This tutorial shows the different ways to convert a List to Map in Java. - [How to exclude a URL from a Servlet Filter](https://initialcommit.com/blog/how-to-exclude-a-url-from-a-servlet-filter.md): By default, servlet filters don’t support excluding a specific URL pattern, whenever you define a URL pattern for a filter then any request matching this pattern is processed by the filter without exceptions. - [Deploy JAX-WS service on tomcat](https://initialcommit.com/blog/deploy-jax-ws-service-tomcat.md): This tutorial provides a step-by-step guide on how to build and deploy JAX-WS web service on Tomcat. - [Build SOAP service with JAX-WS](https://initialcommit.com/blog/build-soap-service-jax-ws.md): JAX-WS is an API used for building and consuming XML web services in Java, it was first released in Java EE5. - [Deploy Spring Boot application on external Tomcat](https://initialcommit.com/blog/deploy-spring-boot-application-external-tomcat.md): Spring Boot provides an embedded servlet container which makes it very easy to setup and deploy web applications, by default all Spring Boot applications are exported as a runnable jar file and developers would only need to run this jar file on a java environment without the need to worry about installing and setting up servlet containers. - [How to setup java on windows](https://initialcommit.com/blog/setup-java-windows.md): This is a step-by-step guide to install java (JRE) on windows machine. - [How to setup java on unix](https://initialcommit.com/blog/setup-java-unix.md): This is a step-by-step guide to install java (JRE) on unix machine. - [How to setup Tomcat in Eclipse](https://initialcommit.com/blog/setup-tomcat-eclipse.md): In this tutorial, we provide a step-by-step guide on how to setup and configure Tomcat in Eclipse. - [How to create a web project using Maven in Eclipse](https://initialcommit.com/blog/create-web-project-using-maven-eclipse.md): In this tutorial, we provide a step-by-step guide on how to create a web project using Maven in Eclipse. - [Building REST web service using RESTEasy](https://initialcommit.com/blog/building-rest-web-service-using-resteasy.md): RESTEasy is yet another popular framework which implements JAX-RS specification and is widely used for building REST web services in java. - [Building REST web service using Jersey](https://initialcommit.com/blog/building-rest-web-service-using-jersey.md): Since Java 5, JAX-RS specification has been announced in order to support building REST web services according to the REST architectural pattern. - [forward() vs sendRedirect() vs include()](https://initialcommit.com/blog/forward-vs-sendredirect-vs-include.md): It is a common practice that a controller redirects to another resource after processing a request, the resource could be either a view which displays the result of processing or even another controller which needs to do further processing on the request. - [How to send data from Java Servlet to JSP](https://initialcommit.com/blog/how-to-send-data-from-servlet-to-jsp.md): JSP is mostly used as the view component in any Java-based MVC application, its main usage is to present dynamic data processed and generated from server-side controllers like a servlet. - [Pass data from html to servlet](https://initialcommit.com/blog/pass-data-html-servlet.md): In this tutorial we explain the common way of passing data from html to java servlets, we mostly focus on passing form data entered by end-users through pages like: login, sign-up, contact-us .. - [JSP – Hello World Tutorial](https://initialcommit.com/blog/jsp-hello-world-tutorial.md): In this tutorial, we provide a step-by-step guide for creating a hello world web application using JSP technology. - [Servlet 3.0 – Hello World Tutorial](https://initialcommit.com/blog/servlet-3-0-simple-hello-world-tutorial.md): In this tutorial, we provide a step-by-step guide for creating a hello world web application using Servlet 3.0 technology. - [Servlet 2.5 – Hello World Tutorial](https://initialcommit.com/blog/servlet-2-5-simple-hello-world-tutorial.md): In this tutorial, we provide a step-by-step guide for creating a hello world web application using Servlet 2.x technology. - [StringBuilder VS StringBuffer](https://initialcommit.com/blog/stringbuilder-vs-stringbuffer.md): Since String is immutable, it is very costly to use it when constructing a dynamic character string due to the fact that a new memory location will be allocated at each assignment or modification. - [Java try-with-resources](https://initialcommit.com/blog/java-try-resources.md): Java 7 supports a new statement called try-with-resources which extends the behavior of the traditional try/catch block for the sake of automatic resource management. - [Exception handling strategy](https://initialcommit.com/blog/exception-handling-strategy.md): In this article we introduce a common strategy for handling exceptions in an OOP application, our strategy conforms to the best exception handling techniques and can be integrated in any application. - [How to use exceptions effectively](https://initialcommit.com/blog/use-exceptions-effectively.md): Exception is an event which occurs during the execution of a program and disrupts its normal flow, it is mainly arrised from different kind of situations such as wrong user interaction, hardware failure, network failure, database failures or even business failures. - [Define an abstract property in java](https://initialcommit.com/blog/define-abstract-property-java.md): Abstract keyword is normally applied on classes and methods in order to delegate the implementation of some behavior to subclasses. Java doesn’t support abstract properties, if you try to mark a class property as abstract, you get a compilation error. - [Static keyword in java](https://initialcommit.com/blog/static-keyword-java.md): Every instance of a class has its own state and behavior, whenever the state of a particular instance is modified, other instances are not affected. - [How to use Enums in java](https://initialcommit.com/blog/use-enums-java.md): In this article, we provide several examples on the usage of Enums in java. - [Java IO: difference between absolute,relative and canonical path](https://initialcommit.com/blog/java-io-difference-absoluterelative-canonical-path.md): The common way of accessing the file system in java is through the java.io.File API. - [How to run a jar file from command line](https://initialcommit.com/blog/run-jar-file-command-line.md): So you got an executable jar and you are wondering how to run it! . In this tutorial we define the different ways to run an executable jar through the windows command line. - [How to create an executable jar in java](https://initialcommit.com/blog/create-executable-jar-java.md): A jar file is executable if it contains at least one entry point class with a main method. In this tutorial, we define the different ways to create an executable jar. - [How to create an immutable class in java](https://initialcommit.com/blog/create-immutable-class-java.md): An object is immutable if its state cannot change after construction, immutable objects don’t expose any way for other objects to modify their state, the object’s fields are initialized only once inside the constructor and never change again. - [Working with hashcode() and equals() in java](https://initialcommit.com/blog/working-hashcode-equals-java.md): By default, the java super class java.lang.Object provides 2 important methods: equals() and hashcode() for comparing objects, these methods become very useful when implementing large business which requires interactions between several classes. - [Java – pass by reference or pass by value](https://initialcommit.com/blog/java-pass-reference-pass-value.md): Before describing how arguments are passed in java, it is worth to define how java variables are allocated inside the memory. Basically we talk about 2 types of variables: primitives and objects. - [Java – Convert Array to List](https://initialcommit.com/blog/java-convert-array-to-list.md): This tutorial shows several ways to convert Array to List in Java. - [Load balancing tomcat with Apache](https://initialcommit.com/blog/load-balancing-tomcat-with-apache.md): In some circumstances, it is mandatory to deploy your application on multiple tomcat instances instead of a single one, this usually happens when working with a heavy application which consumes a big amount of memory storage and has a big number of active users. - [Configure tomcat memory usage](https://initialcommit.com/blog/tomcat-memory-usage.md): By default, the memory size allocated for tomcat is not enough to handle heavy applications which require high memory usage, several OutOfMemoryError exceptions will be thrown if you keep the default tomcat configuration. - [How to install Apache Tomcat on Windows](https://initialcommit.com/blog/how-to-install-apache-tomcat-on-windows.md): Tomcat is an open-source Java application server provided by Apache, it is the most popular application server for the java environment. - [Step-by-step guide for installing tomcat on unix](https://initialcommit.com/blog/step-by-step-guide-for-installing-tomcat-on-unix.md): Here below we provide a step-by-step guide for installing and setting up tomcat in unix environment, for those who are interested in windows machines you can refer to this guide. - [SDLC in practice: practical definition (Part 1)](https://initialcommit.com/blog/sdlc-in-practice-practical-definition-part-1.md): When talking about process in software development, the first word that comes into your mind is SDLC (Software Development Life Cycle). - [SDLC in practice: live impacts (Part 2)](https://initialcommit.com/blog/sdlc-in-practice-live-impacts-part-2.md): Continuing our series about applying process in software development, in this article we’re going to elaborate how applying process would impact positively the software and the team structure. - [Software design principles](https://initialcommit.com/blog/software-design-principles.md): Software design has always been the most important phase in the development cycle, the more time you put on designing a resilient and flexible architecture, the more saving you will get in the future when changes arise. - [Web Service Project Structure](https://initialcommit.com/blog/web-service-project-structure.md): In this article we introduce the most common way for structuring a maintainable web service, our example can be used as a template for creating any web service using object oriented language. - [Coding Conventions](https://initialcommit.com/blog/coding-conventions.md): In this article, we talk about the standards and the best practices which make your code looks clean, elegant and most importantly understandable by humans. - [Don't hold back on the Java](https://initialcommit.com/blog/learn-java-development.md): Java development jobs are in high-demand, as it is a language that many companies have adopted in the past. There are numerous Java systems still being used by a wide variety of organisations, both in the public and private sectors. ## Amazon Web Services (AWS) - [Using AWS CloudWatch to Maximize Your Monitoring Coverage](https://initialcommit.com/blog/aws-cloudwatch.md): In this article, you will get a solid understanding of how to use CloudWatch to comprehensively monitor and troubleshoot your AWS resources. - [Streaming and Data Capture with AWS DynamoDB](https://initialcommit.com/blog/aws-streaming-dynamodb.md): In this article, we will explore how to use DynamoDB streams to monitor and react to data changes in DynamoDB tables. - [Deploy your First Serverless App Using AWS CDK](https://initialcommit.com/blog/deploy-serverless-app-aws-cdk.md): In this article, we will be deploying this application using the AWS Cloud Development Kit (CDK). - [What is AWS CDK? | Building Your First App With AWS CDK](https://initialcommit.com/blog/what-is-aws-cdk.md): This article will provide a high-level overview of the AWS CDK and its key features. - [AWS EMR - A Gentle Introduction to AWS Elastic MapReduce](https://initialcommit.com/blog/aws-emr.md): In this article, we'll explore the AWS EMR (Elastic MapReduce) tool set and set up your first big data workload. Within, we'll set up storage, compute nodes, transfer the dataset to the system, monitor progress, and collect and review the results. - [Using AWS CloudFront as a CDN for an S3 Static Site](https://initialcommit.com/blog/aws-cloudfront-cdn-s3-static-site.md): In this article, we will learn how to connect an S3-hosted static site to a CloudFront distribution, using Route 53 for DNS routing and Certificate Manager for SSL certification. - [Continuous Deployment of AWS S3 Static Site](https://initialcommit.com/blog/continuous-deployment-aws-s3.md): In this article, we explore three options for continually deploying content to S3: Git server hooks, GitHub Actions, and Bitbucket Pipelines. - [Using AWS Route 53 to Publish S3 Static Site on Custom Domain](https://initialcommit.com/blog/aws-route-53-domain-static-site.md): In this article, we will be using Route 53 to publish a static site hosted using AWS S3 to a custom domain. - [Sync Files to S3 Bucket Via AWS CLI ](https://initialcommit.com/blog/sync-files-s3-bucket-aws-cli.md): In this article, we'll discuss using the AWS CLI to programmatically synchronize files from a local directory to an AWS S3 bucket. - [Hosting a Static Site on AWS S3](https://initialcommit.com/blog/host-static-site-aws-s3.md): In this article, we'll describe how to set up and host a static site using AWS S3. - [Change your domain and preserve SEO with AWS Route 53, AWS S3, and AWS Cloudfront](https://initialcommit.com/blog/Change-Domain-Preserve-SEO-AWS.md): In this article, we'll discuss changing a website's domain while preserving SEO using AWS Route 53, AWS S3, and AWS Cloudfront. - [How to perform an easy AWS Lift-and-Shift](https://initialcommit.com/blog/aws-lift-and-shift.md): Learn how to lift-and-shift applications using AWS. Amazon Web Services offer cloud services and infrastructure to support your applications. - [How to create a DynamoDB table on AWS](https://initialcommit.com/blog/how-to-create-a-dynamodb-table-on-aws.md): How to Create a DynamoDB Table on AWS. In Java, dynamodb create table java and you are done. DynamoDB is a fully managed NoSQL database and you do not have to manage any servers. Amazon DynamoDB is the primary database in AWS for building serverless applications. - [AWS Lambda in plain english](https://initialcommit.com/blog/what-is-lambda.md): What is Lambda? It is a Cloud service offered by AWS to host your application(s). You upload an application and it gets automatically deployed to a URL endpoint. ## Spring Boot - [5 essential Spring Boot annotations](https://initialcommit.com/blog/5-essential-spring-boot-annotations.md): In this article, we'll provide some background on annotations in Java and Spring Boot. Then we'll present our picks for the top 5 essentials annotations that developers should be familiar with when building applications with Spring Boot. - [Build & Deploy a Spring Boot App on AWS Elastic Beanstalk](https://initialcommit.com/blog/Build-And-Deploy-A-Spring-Boot-App-On-AWS-Elastic-Beanstalk.md): In this article, we'll discuss how to build and deploy a Spring Boot app on Amazon Web Services (AWS) Elastic Beanstalk. - [AWS Elastic Beanstalk Configuration for Spring Boot App](https://initialcommit.com/blog/AWS-Elastic-Beanstalk-Configuration-For-Spring-Boot-App.md): In this article, we'll discuss how to set up and configure Amazon Web Services (AWS) Elastic Beanstalk to host Spring Boot applications. - [InitialCommit.io Website Architecture Overview](https://initialcommit.com/blog/InitialCommit-Website-Architecture-Overview.md): In this article, we will provide an architecture overview of the initialcommit.io website. Specifically, we will discuss the following topics: Choosing the right tools, General website architecture overview, Programming languages and IDE in use, Frameworks and dependencies, Version control setup, structure, and process, Hosting, Deployment process. - [Spring Cloud Config Server](https://initialcommit.com/blog/spring-cloud-config-server.md): Managing the configuration of microservices in a distributed system has been a tedious and time-consuming task especially if we’re talking about huge systems which consist of considerable amount of microservices. - [Serve Static Resources with Spring Boot](https://initialcommit.com/blog/serve-static-resources-with-spring-boot.md): In this tutorial we show how Spring Boot serves static resources like (html, js, css) in a web application. - [Spring Boot – How to solve OAuth2 REDIRECT_URI_MISMATCH](https://initialcommit.com/blog/oauth2-redirect-uri-mismatch.md): When trying to authenticate a user using OAuth2 through a third-party service like (Google, Facebook .. etc.), the following error occurs: - [Spring Boot – How to solve OAuth2 ERR_TOO_MANY_REDIRECTS](https://initialcommit.com/blog/spring-boot-how-to-solve-oauth2-err_too_many_redirects.md): When redirecting back to your application after a successful OAuth2 authentication, the following error occurs: - [Spring Boot + Spring Security + OAuth2](https://initialcommit.com/blog/spring-boot-spring-security-oauth2.md): In this tutorial we explain how to secure a Spring Boot application using OAuth2. - [Spring Boot + JPA + Hibernate + Oracle](https://initialcommit.com/blog/spring-boot-jpa-hibernate-oracle.md): In this tutorial we show how to create a Spring Boot application that communicates with an Oracle data source through Hibernate. - [How to change the default port of Spring Boot application](https://initialcommit.com/blog/how-to-change-the-default-port-of-spring-boot-application.md): By default, Spring Boot applications run on an embedded Tomcat via port 8080. In order to change the default port, you just need to modify server.port attribute which is automatically read at runtime by Spring Boot applications. - [Build REST Web Service using Spring Boot](https://initialcommit.com/blog/build-rest-web-service-using-spring-boot.md): This tutorial provides a step-by-step guide on how to build a restfull web service using Spring Boot. - [Create a Web Application With Spring Boot](https://initialcommit.com/blog/spring-boot-jsp.md): This guide shows how to create a simple MVC web application using Spring Boot. - [What is Spring Boot?](https://initialcommit.com/blog/what-is-spring-boot.md): Setting up an enterprise spring-based application has become a tedious and error-prone task due to the required bulky configuration along with the complicated dependency management especially if we’re talking about applications which make use of several third party libraries. - [Build REST web service using Spring](https://initialcommit.com/blog/build-rest-web-service-using-spring.md): This tutorial provides a step-by-step guide on how to build REST web service using Spring framework. ## General Programming - [Comparing Rust and Go in 2022](https://initialcommit.com/blog/comparing-rust-go-2022.md): In this article, I am going to discuss some of the key comparisons when evaluating Rust and Go. - [Decoding Bitcoin Guidebook for Developers Pre-Launch](https://initialcommit.com/blog/Baby-Bitcoin-Pre-Launch.md): We've opened the pre-launch for our new book, the Decoding Bitcoin Guidebook for Developers. - [How much money does a software developer make](https://initialcommit.com/blog/how-much-money-does-a-software-developer-make.md): The amount of money that a software developer makes is dependent on many different factors. One of the biggest ones is the price that one is going to charge for a software product. - [How to become a software developer](https://initialcommit.com/blog/how-to-become-a-software-developer.md): If you want to learn how to become a software engineer, there are many schools and universities that will teach you the skills and information you need to succeed. - [What is software development](https://initialcommit.com/blog/what-is-software-development.md): What is software development? Software development is the creative process of designing, conceiving, coding, testing, documenting, and bug-fixing involved in developing and maintaining various software modules, frameworks, or components. - [To Build Or Not To Build: In-House Software vs Third-Party Software](https://initialcommit.com/blog/build-software-in-house-vs-third-party.md): In this article, we'll compare and contrast building software in-house versus using third-party tools and services. - [What Programming Language Does Raspberry Pi Use?](https://initialcommit.com/blog/what-programming-language-does-raspberry-pi-use.md): In this article, we will explain which programming languages are natively supported on Raspbian OS, the default operating system that ships with the Raspberry Pi. - [How long does it take to learn coding?](https://initialcommit.com/blog/how-long-does-it-take-to-learn-coding.md): In this article, we will try to shed some light on the question How Long Does it Take to Learn Coding? - [How to become a software developer without a degree](https://initialcommit.com/blog/how-to-become-a-software-developer-without-a-degree.md): If you are looking for answers on how to become a software developer without a degree, then this article was written for you. - [Why are there so many programming languages?](https://initialcommit.com/blog/why-are-there-so-many-programming-languages.md): In this article, we'll discuss some of the reasons there are so many programming languages to choose from. - [Reddit Learn Programming](https://initialcommit.com/blog/reddit-learn-programming.md): In this article, we will discuss the best ways to learn programming using Reddit. - [What is Linting?](https://initialcommit.com/blog/what-is-linting.md): In this article, we'll discuss what linting is and provide an example illustrating why it is used. - [What is a YAML file?](https://initialcommit.com/blog/what-is-a-yaml-file.md): In this article, we will be taking a look at the structure and syntax of a YAML file. - [What is windows software development kit](https://initialcommit.com/blog/what-is-windows-software-development-kit.md): What is a Microsoft windows software development kit? Windows is an operating system used by Microsoft for desk-top PCs and laptops. - [Is software development hard](https://initialcommit.com/blog/is-software-development-hard.md): Many new companies and businesses wonder if it is really possible to find a job in software development. The answer is definitely “no.” - [How does software development work](https://initialcommit.com/blog/how-does-software-development-work.md): Software development, also known as software engineering, is the process of turning project plans into working applications. - [What does a software developer do](https://initialcommit.com/blog/what-does-a-software-developer-do.md): Typical day activities for a software engineer include developing new software, testing new software, analyzing customer data, and making prototypes for new software applications. - [How to become a web developer in 2020](https://initialcommit.com/blog/how-to-become-a-web-developer-2020.md): Learn how to become a Web Developer in 2020. A Web Developer can work anywhere in the world, using the coding skills to build software online. The amount of choices are endless with Web development. - [How much does a software developer make a year](https://initialcommit.com/blog/how-much-does-a-software-developer-make-a-year.md): Many individuals, both new and old, have an interest in how much does a software developer make a year. This interesting question was sparked by the release of a new game by Electronic Arts. - [What is a greenfield in software development](https://initialcommit.com/blog/greenfield-software-development-project.md): One of the best pieces of advice I can give any new businessperson is to use a greenfield before committing to a piece of software or hardware is a good program to follow. - [What degree do you need to be a software developer](https://initialcommit.com/blog/what-degree-do-you-need-to-be-a-software-developer.md): If you are thinking about a career in the IT field, it is likely that you will want to know what degree programs are necessary for entering this field. - [Free Extract: How Programming Languages Work](https://initialcommit.com/blog/Coding-Essentials-How-Programming-Languages-Work.md): Free extract from Chapter 2 of the Coding Essentials Guidebook for Developers. - [Free Extract: Data - Ones, Zeros, Bits, and Binary](https://initialcommit.com/blog/Coding-Essentials-Data-Ones-Zeros-Bits-Binary.md): Free extract from Chapter 1 of the Coding Essentials Guidebook for Developers. - [Free Extract: Basic Computer Architecture](https://initialcommit.com/blog/Coding-Essentials-Basic-Computer-Architecture.md): Free extract from Chapter 1 of the Coding Essentials Guidebook for Developers. - [How to stay employed during Covid-19 / Coronavirus as a software developer](https://initialcommit.com/blog/covid-19-software-developer-guide.md): How to Stay Employed During Covid-19 / Coronavirus as a Software Developer. Times are tough, and here are some practical tips to staying employed and/or financially stable during the coronavirous pandemic. - [Free Extract: Preface & Introduction](https://initialcommit.com/blog/Coding-Essentials-Preface-and-Introduction.md): Free preface and introduction from the Coding Essentials Guidebook for Developers. - [Table of Contents](https://initialcommit.com/blog/Coding-Essentials-Table-of-Contents.md): Table of contents from the Coding Essentials Guidebook for Developers. - [Beginner's guide to creating a SQL Server stored procedure](https://initialcommit.com/blog/beginners-guide-to-create-sql-server-stored-procedure.md): Learn how to create an SQL stored procedure with this simple beginner's guide. - [Coding Essentials Pre-Launch Through April 1st 2020](https://initialcommit.com/blog/Coding-Essentials-Pre-Launch.md): We've opened the pre-launch for our new book, the Coding Essentials Guidebook for Developers. It will run through April 1st 2020. - [Lyft junior software engineers earn more than $200,000 per year](https://initialcommit.com/blog/lyft-junior-software-engineers-earn-a-salary-of-more-than-200000.md): Lyft Junior Software Engineers earn more than $200,000 per year, according to recent statistics. The ridesharing tech company is based in San Francisco, California and operating in 644 cities in the United States and 12 cities in Canada. - [What is a software developer](https://initialcommit.com/blog/what-is-a-software-developer.md): What is a software developer? Software development is the process of developing applications and making them available in the market. - [How long does it take to become a software developer](https://initialcommit.com/blog/how-long-does-it-take-to-become-a-software-developer.md): As a software developer, you will find that learning how to code and create complex programs can be very time consuming. - [Code Card Release](https://initialcommit.com/blog/Code-Card-Release.md): Code Card is a code syntax dictionary. We created it to help developers easily search, copy, and paste common coding snippets! - [20 of Google's hardest interview questions for software engineers](https://initialcommit.com/blog/google-interview-questions-for-software-engineer.md): Google is notorious for asking hard interview questions, their coding challenges, and solving problems on a whiteboard. Software Engineers from Google are often the most smartest Engineers in the world, able to solve the hardest interview questions for Software Engineering. - [It is perfectly OK to only code at work, you can have a life too](https://initialcommit.com/blog/it-is-ok-to-only-code-at-work.md): There is often pressure inside Software development for Software developers to code outside of work hours. Whether you are a Python, Ruby, Java, or any other developer... There is absolutely no need to code outside of work if you don't want too. Coding is considered a passion for some, but others they don't think this way. - [How to develop software](https://initialcommit.com/blog/how-to-develop-software.md): There are two stages of testing for any software product. The first stage is known as the prototyping stage and the second stage is known as the testing phase. - [5 simple ways to improve your communication skills as a software developer](https://initialcommit.com/blog/5-ways-to-improve-communication-skills-as-software-developer.md): Communication skills are fundamental for being an effective Software Developer. In this article we break down the 5 ways to execute effective communication in the workplace. Programming is just one element to Software development, by building your communication skills too you will see increased benefits in your work and personal life. - [SQL joins in 2 minutes](https://initialcommit.com/blog/sql-joins-explained-in-2-minutes.md): SQL Join is a common clause performed in Software development and Data Science. The clause is used to combine data from two different database tables. By combining the tables together we gain a richer dataset. - [The overlap between chess and programming is real](https://initialcommit.com/blog/chess-for-programming.md): Chess builds the some of the same skills required to become a computer programmer. This is an excellent game and can be played online or physically using a Chess board. Want to become a better Programmer? Pick up a Chess board, grab a friend and get moving. - [How to avoid limiting your programming career](https://initialcommit.com/blog/how-to-avoid-limiting-your-programming-career.md): Your Programming Career might be over before you know it. Here are some ways to avoid limiting your career so you can make your way through the ranks faster. - [Elon Musk's tunnel passes first round in Las Vegas](https://initialcommit.com/blog/elon-musks-tunnel-is-going-ahead.md): Elon Musk's Tunnel Passes First Round in Las Vegas. Find out more. - [Major bank publishes private NPM package - oops!](https://initialcommit.com/blog/major-bank-publishes-private-npm-package.md): Laurie Voss, co-founder of [NPM](https://www.npmjs.com/), recently sent out this tweet highlighting that a major bank has published a private package to the npm registry... and left it there for over 3 years. - [A gentle introduction to functions in ReasonML](https://initialcommit.com/blog/introduction-to-functions-in-reason.md): ReasonML is a new syntax and toolchain powered by OCaml and developed by Facebook. It's a familiar syntax to many developers as it is closely aligned with Javascript. - [Unikernels with OPS running are faster and more secure than Docker Containers](https://initialcommit.com/blog/unikernels-faster-than-docker-container.md): Unikernel vs docker - Unikernels are an emerging deployment pattern that many companies, both small and large, are starting to dive into headfirst and see some outstanding results. - [Automate your home for ultimate relaxation](https://initialcommit.com/blog/automate-your-home-for-relaxation.md): Interested in IoT or Internet of Things? Why not automate your home for the ultimate relaxation experience. Connect your IoT devices, Amazon Alexa, Amazon Echo, Google Home, even your Massage chair. Automation anywhere, anytime. Automated systems are becoming more and more mainstream. - [Beginner guide to Big-O Notation](https://initialcommit.com/blog/learn-big-o-algorithm-complexity.md): Big O notation is a tried and true method to measure the speed of an Algorithm. Learning this concept helps you to build better, faster Software. The best way to understand Big o notation for beginners is to have it explained simply and with examples. - [5 ways to improve the performance of your web app](https://initialcommit.com/blog/programming-web-apps.md): The 5 Ways to Improve the Performance of Your Web App. Software Developers, Digital Marketers, Entrepreneurs - improve website performance today. - [Why starting a business as a software developer is a good idea](https://initialcommit.com/blog/developer-business-startup.md): To a Software Developer Business might seem foreign. Learning about Business helps you build better Software. By owning a Business you have more incentive to want to learn how it works. And since you have knowledge of the development side, you can play the do-er AND the task-setter. - [Why a CS degree is better than teaching yourself how to code](https://initialcommit.com/blog/cs-degree-over-self-study.md): Should I teach myself to code or get a college CS degree? This is a question that many face. Software development is a field that is heavily reliant on skills. So surely teaching yourself to code should be enough right? Wrong. - [Write code that you want to read](https://initialcommit.com/blog/write-code-you-want-to-read.md): Want to improve your programming skills? Make this your mantra - "I will only write code that I want to read". - [8 key skills for front-end developers in 2019](https://initialcommit.com/blog/frontend-development-skills.md): Artificial Intelligence is not just Machine Learning. - [Evolutionary programming - the next big wave of growth in A.I?](https://initialcommit.com/blog/evolution-programming.md): Artificial Intelligence is not just Machine Learning. - [The art of writing software documentation (Updated 2019)](https://initialcommit.com/blog/code-documentation.md): Find out the best way to write software documentation. Software projects today don't place emphasis on documentation. System documentation relies on design decisions, requirements documents, architecture descriptions, program source code, and FAQs. - [Blog to 10X your programming career](https://initialcommit.com/blog/blogging-for-programmers.md): Blogging can help you with getting jobs, learning topics, getting exposure and making extra money. Give it a try! - [Kubernetes - the orchestration system taking over the DevOps world](https://initialcommit.com/blog/learn-k8s.md): Kubernetes, which is commonly called K8s, is a type of orchestration system for various container technologies, such as “rkt” and “Docker,” which are currently taking over the DevOps scene. - [How to get into software development](https://initialcommit.com/blog/how-to-get-into-software-development.md): Many people ask the same sort of question over again, “How do I get into software development?” The answers they get are that it takes a long time to go through formal programming training and that most big companies hire in-house programmers. - [Teach programming to become a better programmer](https://initialcommit.com/blog/teach-programming.md): Are you bored with programming? Why not teach it. It’s not enough to speak in mumbo jumbo such as polymorphism, multithreading, typescript, blah blah these words mean nothing to people who don’t know programming. - [Reset for a longer lasting developer](https://initialcommit.com/blog/programmer-burnout.md): Learn how to endure a full career in Software Development. Reset to become a longer lasting Developer. - [Why building fitness applications can improve your health](https://initialcommit.com/blog/fitness-technology.md): Building your own Fitness application shows that exercising your mind and body is possible through Software Development. - [10 hottest software development trends in 2019](https://initialcommit.com/blog/development-trends.md): Serverless, Java, Artificial Intelligence.. some of the hottest Software development trends blasting into 2019. - [Build the future with machine learning](https://initialcommit.com/blog/rapidml.md): Build Machine Learning applications easily with this short Tensorflow tutorial. - [Deep learning for cancer detection](https://initialcommit.com/blog/deep-learning-cancer.md): In March 2017, Google Brain, the deep learning artificial intelligence research project at Google, published the paper "Detecting Cancer Metastases on Gigapixel Pathology Images", in which they demonstrated that a CNN could exceed the performance of a trained pathologist with no time constraints. - [Wordpress is the best side gig for developers](https://initialcommit.com/blog/learning-wordpress.md): 75 million websites on the internet today are powered by Wordpress. Why not learn it? - [4 major memory safety issues while coding - causes and solutions](https://initialcommit.com/blog/memory-safety-programming.md): When developing in a so-called “unsafe” language, like C, C++, or a host of others, memory management is a huge issue. - [How much do software developers make](https://initialcommit.com/blog/how-much-do-software-developers-make.md): It’s not a secret that there are a lot of people who aspire to be software developers. The salary they make is one of the major reasons why many people opt to pursue a career as a developer. - [Staying relevant in software development](https://initialcommit.com/blog/relevant-in-software.md): The main challenge I see in our field is staying relevant. We have all seen these emerging fields and technologies that have taken over... Machine Learning, Artificial Intelligence, Augmented/Virtual Reality, Internet-of-Things, Blockchain, Quantum Computing etc. etc. - [How self-driving cars learn to drive](https://initialcommit.com/blog/self-driving-car.md): Self-driving cars took the spotlight when Tesla announced that the Model S received a 5 star safety rating after independent testing by the National Highway Traffic Safety Administration (NHTSA). You may have also seen the video of a Tesla driving autonomously. - [The Internet of Things explained](https://initialcommit.com/blog/internet-of-things-explained.md): Internet-of-Things (IoT) is maturing as a field, and now IoT platforms have started to publish their “Things” publicly on the web. Find out how you can leverage IoT with this short article. - [File systems made easy](https://initialcommit.com/blog/learn-filesystem.md): A File System is anything that can store files. - [Learn C programming and the rest will come](https://initialcommit.com/blog/learn-c-programming.md): When you learn c, you gain a basic understanding of the flow of these languages and how they run, though all of them bring some or the other changes which make them unique. So, if you’re interested in programming, C is a great place to start. - [Google's Kubernetes - natively supported on the Docker platform](https://initialcommit.com/blog/kubernetes-explained.md): Google’s Kubernetes, is an in-house container-management system they have developed and shared with the world. Did you know that for the last 15 or so years they have been working on building container-management systems? Throughout that period they developed 3 different types of systems, combatting the task of managing linux containers at mega-scale. - [How to become a software developer from scratch](https://initialcommit.com/blog/how-to-become-a-software-developer-from-scratch.md): If you have a passion for computers and would like to help make the world a better place, you may want to consider becoming a software developer. These developers create software programs that help people do different things online. - [What do software developers do](https://initialcommit.com/blog/what-do-software-developers-do.md): What exactly do software developers do, and what is a software designer? In today’s and increasingly competitive business and technologies landscapes, companies require dynamic and innovative software solutions to differentiate themselves from the competition. - [Introduction to software-defined networking (part 1)](https://initialcommit.com/blog/software-networking.md): Learning Computer Networking as a Software Developer has benefits, let's explore the Networking side. - [10X your applications with data analytics](https://initialcommit.com/blog/data-analytics-programming.md): Data Analytics, the simple process of identifying conclusions directly from data. But this isn't new... It has been around for quite some time. However, all the hysteria at the moment is surrounding Real-Time Data Analytics. - [Hard lessons learned from a non-technical startup founder](https://initialcommit.com/blog/startup-tips.md): Not every successful startup was founded by someone who knew how to code. - [Top-down approach to Machine Learning (Updated 2019)](https://initialcommit.com/blog/machine-learning-introduction.md): Learn Machine Learning (ML) and be ahead of the pack in the Software industry. Machine Learning is a sub-field of Artificial Intelligence (A.I), which is heavily used in modern software systems. Machine Learning algorithms can improve software (a robot) and it's ability to solve problems through gaining experience and knowledge. - [Code optimisation made simple](https://initialcommit.com/blog/optimise-code.md): Develop the best code you can by optimising. - [What is software development life cycle](https://initialcommit.com/blog/what-is-software-development-life-cycle.md): The software development life cycle, known as the software development life-cycle, consists of a series of activities beginning with an idea for a product or service, which in turn is backed up by a series of activities aimed at understanding customer needs, developing an appropriate solution, testing and improving the program, and finally integrating it into the company's product line. - [How I built a League of Legends voice assistant with Amazon Alexa](https://initialcommit.com/blog/voice-technology-alexa.md): Many top tech giants such as Amazon, Google and Apple have started rolling out their voice-enabled devices to consumers. These devices are enabled with pre-existing voice software (eg. Alexa, Google assistant and Siri). What’s more? The voice commands can be customised so that we can do more, way more. - [Create your own game engine but don't ever use it](https://initialcommit.com/blog/build-game-engine.md): Learn how to make a game engine but never use it. Creating unity games can be far more productive, than building your games from scratch. Be a game maker by building your source engine, be a game seller by using free game engines. - [Keeping healthy as a software developer with exercise](https://initialcommit.com/blog/fitness-programming-developer.md): We're all guilty of spending long hours sitting. This can lead to all sorts of body dysfunctions, such as issues in the hips (tight hip flexors), hunched back, poor posture etc. - [How to be a software developer](https://initialcommit.com/blog/how-to-be-a-software-developer.md): If you are dreaming of becoming a software developer, it is important to have the knowledge and skills before starting the job. - [Plain old graphs that solve your problems](https://initialcommit.com/blog/graph-algorithm-data-structure.md): The graphs in computer software are a little different from the bar graphs in high school. Sure, they are still a mapping of relations just represented differently. - [Service-oriented architecture... whatever that really means...](https://initialcommit.com/blog/service-oriented-architecture.md): SOA or Service-Oriented Architecture is a widely known term used in Software Development. It is used to decouple services and promote scalability, allowing applications to grow. - [An introduction to sorting algorithms](https://initialcommit.com/blog/sorting-algorithms.md): Sorting data is a very interesting problem to solve, and there isn't always a one-size fits all solution. - [Know your times tables, but... do you know your hash tables?](https://initialcommit.com/blog/learn-hashtable.md): Diving into the world of Hash Tables and understanding the underlying mechanics is extremely interesting, and very rewarding. So let's get into it and get started from the beginning. They are used commonly in algorithm design. - [How does a software developer differ from a computer programmer](https://initialcommit.com/blog/how-does-a-software-developer-differ-from-a-computer-programmer.md) - [What do developers do to support software products](https://initialcommit.com/blog/what-do-developers-do-to-support-software-products.md): What do software engineers and product development professionals do to support a software product? Most of the time, they’re involved in some form of testing. ## History of Programming - [A 16 Year History of the Git Init Command](https://initialcommit.com/blog/history-git-init-command.md): In this article, we'll discuss the Git Init command and how it has changed every year for the past 16 years since Git's inception in April 2005. - [10 computer scientists who made history](https://initialcommit.com/blog/computer-scientists-who-made-history.md): Chess builds the some of the same skills required to become a computer programmer. This is an excellent game and can be played online or physically using a Chess board. Want to become a better Programmer? Pick up a Chess board, grab a friend and get moving. ## Coding Round Ups - [What is the hardest programming language to learn?](https://initialcommit.com/blog/hardest-programming-language-to-learn.md): In this article, we'll discuss Scheme and why we feel it is the hardest programming language to learn. We will also discuss a few other difficult programming languages. - [The 10 highest paying software development certifications](https://initialcommit.com/blog/highest-paid-software-development-certification.md): The 10 Highest-Paying Software Development Certifications - [5 best Artificial Intelligence books in 2020](https://initialcommit.com/blog/best-artificial-intelligence-books-2020.md): Looking for the best ai books? Here are 5 of the best Artificial Intelligence books. They are the best books on Artificial Intelligence you can find in 2020. AI is used today in various Software related fields, machine learning, web development, app development, IOS development, android development. Here are 5 of the very best AI resources someone can buy today. - [Top 3 best Python books you should read in 2020](https://initialcommit.com/blog/best-python-books-2020.md): These 3 best python books cover the python programming language. They contain quality content on python 3, data science, and machine learning techniques used in python. Python is a widely used programming language today - so don't miss the boat! - [7 best courses to learn Artificial Intelligence in 2019](https://initialcommit.com/blog/best-artificial-intelligence-courses.md): The best online courses for learning Artificial Intelligence, learning Machine Learning, learning Graph theory, Statistics and other related topics. These courses help you to build AI agents and learn AI in the modern world. - [Top 3 best Python books you should read in 2019](https://initialcommit.com/blog/3-best-python-books.md): These 3 best python books cover the python programming language. They contain quality content on python 3, data science, and machine learning techniques used in python. Python is a widely used programming language today - so don't miss the boat! - [5 best programming books for beginners and experts in 2019](https://initialcommit.com/blog/best-programming-books-for-beginners-and-experts.md): There are so many programming books out there, it's really hard to know what book is best. This is curated list of the 5 best programming books for anyone interested in programming. - ["Artificial Intelligence: A Modern Approach" is the #1 Best Book to Learn AI](https://initialcommit.com/blog/best-book-to-learn-artificial-intelligence.md): "Artificial Intelligence: A Modern Approach is a book for learning Artificial Intelligence, learning Machine Learning, learning Graph theory and other related topics. It has core concepts for building AI agents, and offers an extensive guide into probability and statistics, plus other topics related to AI." - [5 best artificial intelligence books in 2019](https://initialcommit.com/blog/5-best-artificial-intelligence-books.md): Looking for the best ai books? Here are 5 of the best Artificial Intelligence books. They are the best books on Artificial Intelligence you can find in 2019. AI is used today in various Software related fields, machine learning, web development, app development, IOS development, android development. Here are 5 of the very best AI resources someone can buy today. - [Programming books you wish you read earlier](https://initialcommit.com/blog/programming-books-you-wish-you-read-earlier.md): There are so many programming books out there, sometimes it's hard to know what books are best. You won't find cracking the coding interview, the pragmatic programmer, or even the best python book. These are the best programming books curated from each major Software field. - [5 best text editors for programmers in 2019](https://initialcommit.com/blog/developer-text-editor.md): The 5 Best Text Editors for Programmers. 1. Atom text editor 2. Vim text editor 3. VS Code text editor 4. Notepad++ text editor 5. Sublime text editor. It is essential for Software Developers and Programmers to pick the right text editor, so make your choice wisely. What are the best programming text editors? These 5 will have you covered. - [List of awesome C and C++ programming books](https://initialcommit.com/blog/c-and-cpp-books-you-wish-you-read-earlier.md): Learn C and C++ with this curated list of books which have been highly reviewed by the Software community. Looking for the C++ book? It's written by Bjarne Stroustrup. Author of the C++ language. C and C++ are well-designed programming languages suitable for building Software applications. - [Top 15 Eclipse Keyboard Shortcuts for Java Developers](https://initialcommit.com/blog/top-15-eclipse-keyboard-shortcuts-for-java-developers.md): This tutorial shows the most commonly used keyboard shortcuts while developing a Java application using Eclipse IDE. ## JavaScript & Node.js - [Mouse Tracking Eye Effect with JavaScript](https://initialcommit.com/blog/javascript-mouse-tracking-eye-effect.md): In this article, we'll discuss how to create a mouse tracking eye effect with JavaScript and CSS. - [Beginner's guide to using Node.js and the Express.js framework](https://initialcommit.com/blog/beginners-guide-to-using-express-js-and-node-js-framework.md): Learn Node.js and the Express framework with this beginner's guide. By creating RESTful web services, declaring API endpoints, sending status codes, redirects, and API security best practices. - [Create a Node.js desktop application with Electron, Bootstrap, and Express.js](https://initialcommit.com/blog/create-a-node-js-desktop-application-with-electron-bootstrap-and-express.md): Create a Node.js Desktop Application with this quick tutorial. - [Build Node.js RESTful APIs in 5 minutes (Updated 2019)](https://initialcommit.com/blog/build-rest-api-in-5-minutes.md): Build your own REST API using Node.js and Fastify. REST or "RESTful" is a style of implementing a Web Service. REST is stateless and commonly takes advantage of HTTP. Build a lightweight, scalable, reliable fastify REST API today. - [Software-defined networking (SDN) with Node.js](https://initialcommit.com/blog/software-networking-javascript.md): Software-defined Networking is enabling a programmatic approach to Computer Networking. Learn how to build a Software Networking library using Node.js and find out what capabilties are really available in the space. - [How to create your own Node.js module](https://initialcommit.com/blog/nodejs-module.md): Create your own Node.js module is simple with this quick tutorial. - [How to send data from Javascript to Servlet](https://initialcommit.com/blog/how-to-send-data-from-javascript-to-servlet.md): In modern web applications, the data exchange between front-end and back-end is usually done dynamically through javascript. ## Vim - [7 versatile Vim commands that are easy to memorize](https://initialcommit.com/blog/7-versatile-vim-commands.md): If you're like me, you often re-Google Vim commands on the fly at the moment you realize you need them. For productivity's sake, it can be worth practicing useful commands to make turn them into habit. In this article, we'll discuss 7 Vim commands that are easy to understand, use, and commit to memory. ## Optional - [About](https://initialcommit.com/about) - [Sitemap](https://initialcommit.com/sitemap.xml)