Co trzeba umieć z linuxa?

0

Witam, za niedługo wybije moja pierwsza rocznica odkąd zacząłem naukę programowania w javie. Własnie kończę szlifować ostatnie projekty i będę zabierał się za wyświetlanie CV, jednakże zacząłem przeglądać ogłoszenia i prawie w każdym jest wymagana znajomość linuxa.

Wstyd mi się przyznać, ale jestem laikiem, który całe życie spędził na windowsie. Dlatego chciałbym się dowiedzieć co muszę wiedzieć z tego linuxa, aby móc wysyłać CV? Co kryje się pod pojęciem "znajomość linuxa" w ofertach dla stażystów/juniorów? Poleca ktoś jakiś kurs?

0

Coś dziwnie szukasz albo zamiast Java Developer klikasz na DevOps bo więcej płacą. Jeżeli idziesz na stanowisko juniora to raczej żadnej magii nie będą oczekiwać od ciebie w tym linuxie. Pewnie jakieś podstawy by się w miarę swobodnie poruszać po systemie i tyle.

3

Co kryje się pod pojęciem "znajomość linuxa" w ofertach dla stażystów/juniorów?

linux basic commands

2

Może chodzi o umiejętność programowania modułów jądra?

0

No ale właśnie rzecz w tym, że ja nigdy linuxa na oczy nie widziałem i nie wiem od czego zacząć. Mam konto na pluralsight ale tam są raczej same kursy typu advanced-networking CentOS enterprise linux 7, nie ma nic dla początkujacego.

3

Chodzi o to, że jak ktoś da Ci dostęp do shella, to żebyś sobie tam poradził i nie panikował, jak nie ma okienek i jest sam terminal. Przeklikaj sobie np. to: https://linuxsurvival.com/ i poczytaj sobie o takich rzeczach, jak: unix, ssh, bash, grep, sed, awk, vim, tmux, screen, zsh, git, itd. Możesz też poczytać jakąś książkę o Linuksie. W Helionie na pewno jakieś znajdziesz. Większość programistów i tak nie za bardzo zna te wszystkie toole i ogarniają jedynie podstawy albo nic. Natomiast większość windowsiarzy prawie wcale tego nie ogarnia. IMO programista nie musi mieć eksperckiej wiedzy z tego zakresu. Powinien ją mieć DevOps lub jakiś SysAdmin. Możesz też sobie wgrać jakiegoś Linuxa (np. Ubuntu) na kompa (chociażby na wirtualce) i spróbować coś porobić albo używać go na co dzień, to wtedy poczujesz się z tym komfortowo. Ciężko robić jakieś developerskie rzeczy, czy cokolwiek więcej, niż przeglądanie neta i edycję dokumentów bez użycia terminala.

0
wiciu napisał(a):

Chodzi o to, że jak ktoś da Ci dostęp do shella, to żebyś sobie tam poradził i nie panikował, jak nie ma okienek i jest sam terminal. Przeklikaj sobie np. to: https://linuxsurvival.com/ i poczytaj sobie o takich rzeczach, jak: unix, ssh, bash, grep, sed, awk, vim, tmux, screen, zsh, git, itd. Możesz też poczytać jakąś książkę o Linuksie. W Helionie na pewno jakieś znajdziesz. Większość programistów i tak nie za bardzo zna te wszystkie toole i ogarniają jedynie podstawy albo nic. Natomiast większość windowsiarzy prawie wcale tego nie ogarnia. IMO programista nie musi mieć eksperckiej wiedzy z tego zakresu. Powinien ją mieć DevOps lub jakiś SysAdmin. Możesz też sobie wgrać jakiegoś Linuxa (np. Ubuntu) na kompa (chociażby w wirtualce) i spróbować coś porobić albo używać go na co dzień, to wtedy poczujesz się z tym komfortowo.

Dzięki wielkie, ja całe życie na windowsie więc muszę się przestawić. Już sciągam VMke i zainstuluje sobie jakiegoś Minta, będę działał. Dzięki.

0
Wspanialy Szewc napisał(a):

Wstyd mi się przyznać, ale jestem laikiem, który całe życie spędził na windowsie.

Nie myślałeś żeby się zapisać do KAWa*? :-)

Podstawa to znajomość:

  • bash, .bash_profile, .bashrc, .profile
  • umieć sobie za- i zde-instalować apkę,
  • wyedytować coś (najlepiej vim-em, ale niekoniecznie),
  • podstawowe komendy plikowe (ls, ln, rm, mv, cat, cp, find, whereis),
  • strumieniowe (less, more, tee),
  • znajomość struktury systemu plików (co gdzie powinno być), jego atrybutów i cech
  • znajomość systemów pomocy (help, man)
  • podstawowa wiedza o zarządzaniu prawami dostępu
  • shebang

Dużo z tego potem możesz obsłużyć jakimś programem graficznym (np. GNOME Commander) - o ile będziesz mógł sobie doinstalować - ale to powyżej to taka wspólna baza wszystkich instalacji.

*) Klub Anonimowych Windowsiarzy

2
Wspanialy Szewc napisał(a):

Co kryje się pod pojęciem "znajomość linuxa" w ofertach dla stażystów/juniorów?

Trzeba umieć wychodzić z VIM-a.

title

Poleca ktoś jakiś kurs?

Nie ma takich kursów.
title

0
mechanix napisał(a):

Co kryje się pod pojęciem "znajomość linuxa" w ofertach dla stażystów/juniorów?

linux basic commands

Nie ma czegoś takiego. Co najwyżej POSIX commands, GNU commands, FreeBSD commands, względnie UNIX commands. Linux nigdy nie dorobił się nawet własnych coreutils, była próba stworzenia własnych bibliotek, ale szybko zdechła.

1

Ja większość życia spędziłem na Windowsie, kilka razy próbowałem z ciekawości linuxa aż do poddania się bo nic nie działało aż w końcu przesiadłem się na linuxa i korzystam z niego na codzień - moje spostrzeżenia są takie:

  • dużo łatwiej się nauczyć jeśli masz osobę której możesz coś spytać - ja niestety tylko przez krótki czas miałem taki przywilej ale dało mi to bardzo dużo
  • musisz nauczyć robić się wszystko w terminalu - prawie każde GUI ma problemy które mnie osobiście frustrują gdzie w terminalu prawie zawsze wszystko działa - jak ogarniesz robienie przynajmniej większości rzeczy w terminalu to korzystanie z GUI jest dużo łatwiejsze
  • na pewno w którymś momencie coś zepsujesz i będziesz chciał wszystko przeinstalować, ale jak zepsujesz to warto spróbować to naprawić - nauczysz się dużo
  • korzystaj z ssh i tmux (lub jakiejść alternatywy do tmux) - bez tego ciężko
  • linux jest dla osób które korzystają z open source i lubią jak wszystko jest tak jak lubią - jeśli korzystasz z narzędzi i nie lubisz customizować i hackować innych produktów to duża szansa, że Ci się nie spodoba
  • jeśli korzystasz z emacsa na linuxie to w zasadzie zastąpi Ci potrzebe korzystania z większości rzeczy które oferuje GUI - nauka emacsa jest stosunkowo trudna i mam mieszane uczucia czy polecać na początek, ale polecam spróbować jak zaczniesz w miare komfortowo się poruszać (generalnie obrazek: https://farm4.staticflickr.com/3109/3251176498_c3485a55fb.jpg podsumowuje naukę) - jeśli nie lubisz customizować edytora to zdecydowanie nie polecam
0

Trzeba umiec cale 20 komend i jak editowac plik vimiem ( oraz jak hehe z niego hehe wyjsc )

0

W sumie zależy co konkretnie miałbyś robić, ale podstawowa umiejętność obsługi Linuxa/Unixa z poziomu terminala zawsze się przyda - czasem trzeba się wbić na serwer/VMkę testową po SSH i podnieść serwer który się wyłożył, odpalić dla niego usługę, znaleźć jakiś plik z czymś-tam który gdzieś się zagubił, przegrepować logi w poszukiwaniu czegoś-tam, napisać skrypt który cośtam robi.... Człowiek nigdy nie wie, co go spotka albo czy nie dostanie głupiego taska, który fajnie by było, gdyby jakiś skrypcik robił automagicznie, więc przyda się też Bash i/lub Python.. ale jeśli lubisz kajdanki i pejczyki, to możesz też spróbować Perla ;)

1

Wymagany poziom znajomosci Linuxa jest zalezny od dziedziny/domeny. Jak ktos pracuje na stanowisku "Cloud Software Eng" albo "Platform Software Engineer" albo "Infrastracture Automation Developer" albo "System Software Engineer" (oraz pewnie wiele podobnych zaleznie od firmy) to musi umiec wiele wiecej czesto w niektorych firmach Software Engineerowie robia czesc roboty DevOpsow.

Z must have dorzucilbym: soft link/hard link.

Tak czy siak poza tym co wymienione do tej pory w temacie mozna dodac:
(jako "na niektorych" stanowiskach developerskich wymagane/mile widziane)

  • administracja systemem itp (LVM, Raid, partycje, filesystemy ), GRUB
  • networking (konfiguracja sieci, konfiguracja DNS no i komendy np. traceroute, lsof, netcat, tcpdump, iperf etc)
  • serwery aplikacyjne (np. nginx, konfiguracja itp itd)
  • API linuxa+ wywolania systemowe ( strace itp itd).
  • security tj. iptables, selinux

To sa raczej zagadnienia "advanced" ale na wielu stanowiskach sa przydatne/mile widziane/wymagane.

1

Przejdz bandita to bedziesz znal podstawy:

http://overthewire.org/wargames/bandit/

1 użytkowników online, w tym zalogowanych: 0, gości: 1