Kariera w IT: 10 reguł samorozwoju w IT

2019-05-04

Jaką ścieżkę rozwoju w IT wybrać? Podejrzewam, że to pytanie zadaje sobie wiele osób zajmujących się lub chcących zajmować się IT. Pomijam tu już kwestie, czy iść w stronę project management, czy architekturę czy np. specjalistyczną ścieżkę IT.

Nie znam właściwej odpowiedzi na to pytanie, ale mogę się podzielić doświadczeniami i własnymi przemyśleniami. Oto one:

1. Mając do wyboru stare i nowe – wybierz nowe

Możesz myśleć – chcę zdobyć certyfikat administratora baz danych. W mojej firmie aktulanie korzysta się najwięcej z SQL 2016. Najnowszy jest SQL 2019. Której wersji się uczyć? Powiedziałbym – nowej! Nauka też zajmie dużo czasu, więc zanim opanujesz wersję 2019, to ze sporym prawdopodobieństwem właśnie ta wersja będzie wchodzić do Twojej firmy, a Ty zostaniesz ekspertem na fali. Owszem, występują różnice między wersją starszą, a nowszą, ale te sam sobie wychwycisz.  Jeśli zdecydowałbyś się uczyć wersji 2016, to jak już skończysz… to będziesz ekspertem w niekatulanej wersji. Słabo…

2. Nie porywaj się z motyką na słońce

Chcesz zostać ekspertem w Machine Learning, ale nie znasz Pythona, który jest kluczowym językiem stosowanym w Data Science. Przygotuj sie po prostu na dłuższą przygodę i zacznij od opanowania języka Python. W przypadku tak ambitnego celu można jeszcze pomyśleć o nauce matematyki, statystyki itp. Widać więc że jest kilka rzeczy do zrobienia wcześniej. Wiem wiem, chciałby się od razu ogarnąć docelowy temat, ale bez poprzedzających go kroków będzie bardzo ciężko i ryzyko porażki jest olbrzymie.

3. Nie ucz się tego co już znasz

Powiedzmy, że jesteś programistą .NET. Środowisko to jest tak obszerne, że chyba życia nie starczy, aby całego .NET-a się nauczyć. Możesz więc wielokrotnie stanąć przed wyborem – uczyć się głębiej i głębiej .NET, a może odskoczyć w jakiś inny temat, jak np. inny język programowania. Pomyśl o zdobywanej wiedzy, jak o czymś nowym czego nabywasz. Jeśli uczysz się głębiej i głębiej, to w tydzień nauki dowiesz sie o kilku kruczkach i sztuczkach w środowisku, które już całkiem dobrze znasz i prawdopodobnie prędzej czy później i tak te metody jakoś poznasz. Jeśli jednak ten tydzień poświęcisz zna temat, w którym obecnie jesteś zerem, to przyrost więdzy będzie największy! Niebawem możesz być ekspertem już w dwóch językach zamiast w jednym – warto? Moim zdaniem tak!

4. Bazuj na tym co wiesz

To troche (niestety) przeciwieństwo poprzedniego punktu, ale nie do końca. Załóżmy, że znasz bazę danych MS SQL i radzisz sobie na Linuxie. Nauczenie się innej bazy danych pracującej na Linuxie, to poniekąd naturalny następny krok. Krok, który nie byłby możliwy bez zdobycia przedpola (patrz punkt „nie porywaj się z motyką na słońce”).

5. Nie wszystko na raz!

Oj to częsta pokusa… w pracy zaczyna sie projekt, w którym przyda się znajomość MongoDB. Już wcześniej zacząłeś certyfikację Azure. Na dodatek obecnie zajmujesz sie programowaniem w .NET, a prywatnie interesujesz się Machine Learning. Jeśli jeszcze pojawiło się wolne miejsce na szkoleniu z VMware i jak na nie nie pójdziesz, to będzie szkoda… to jest fatalnie. Sądzę, że nie zostaniesz ekspertem ani w MongoDB, ani w Azure, ani w .NET, ani w VMware. Zdecyduj się. Nie mówię, że można w danej chwili pracować tylko nad jednym tematem, ale myślę, że max to 2 lub 3. Zamiast przez 2 lata pracować nad 3 tematami, może warto nad każdym z nich osobno popracować przez pół roku? Część planów trzeba po prostu odłożyć na później

6. Wyluzuj!

Czasami tak intensywnie myślisz o wybranym celu i tak się na nim skupiasz, że się frustrujesz drobnymi niepowodzeniami. Wyobraź sobie, że chcesz zostać administratorem SQL, robisz lekcje po lekcji, a tu jeden LAB nie chce działać. Szukasz, kombinujesz, a postępu nie ma. Frustracja gotowa. Tymczasem wystarczy wyluzować. Jeśli jednego wieczoru nie udało Ci się rozwiązać problemu, to może się uda następnego wieczoru? A jeśli nadal się nie udało, to może Twoim sukcesem może być przetestowanie kilku niedziałających hipotez? A kiedy już opadasz z sił, to potraktuj dobrze przespaną noc jako sukces! Najistotniejsze w nauce jest żeby się nie poddać. Czasami nierozwiązany problem trzeba po prostu przeczekać i wrócić do niego po kilku tygodniach, miesiacach. Przynajmniej na szkoleniu tak się da – co inaczej podczas wdrożenia u klienta, ale to inna historia. Ciesz sie więc małymi sukcesami i nie frustuj odległym dalekim celem.

7. Chwytaj wiatr w żagle

Nasza kariera jest trochę, jak rejs żaglowcem. Jeśli żagle będą ciągle podniesione, to prędzej czy później przyjdzie wichura i pozrywa żagle. Żagle trzeba w odpowiednim momencie opuścić, a jak wiatry są pomyślne to podnieść. Jaki to ma związek z karierą? Zdarzają się w pracy projekty, które mogą Cię popchnąć we właściwym kierunku, a inne z kolei spychają Cię wstecz. Chcesz programować, a tu pojawia się pomysł automatyzacji jakiegoś procesu – bierz to! Trzeba przygotować raport w Excelu… cofasz się o jedno pole – chyba, że zaproponujesz zbudowanie generatora takiego pliku – wtedy krok do przodu!

8. Stosuj wiedzę w praktyce

Sama nauka z ksiażki czy kursu na nic się zda, jeśli wiedzy nie użyjesz. Szukaj zastosowań. Zgrywając zdjęcia z wakacji nie rób tego ręcznie przeciągając myszką pliki. Posiedź godzinę lub dzień i napisz skrypt, który zrobi to co trzeba za Ciebie!

9. Szukaj wielu źródeł wiedzy

Każdy autor książki, każdy trener na szkoleniu prezentuje swoje podejście do tematu. Jedne zagadnienia są dla niego ważne, a inne są nieistotne. Jeśli jednak oprócz szkolenia e-learning kupisz również książkę to masz już dwa spojrzenia na ten sam temat. Dodatkowo kolejny raz przeglądając ten sam temat z innego źródła, będzie o niebo prościej a i wiedza się utrwali. Tak robię bardzo często i autentycznie to pomaga 🙂

10. Samorozwój w IT to trochę jak nieograniczona wycieczka w nieograniczonych górach.

Widzisz dokoła szczyty, które chcesz zdobyć, ale przecież nie pójdziesz od razu na 8-tysięczniki. Żeby dojść do góry odległej o 30 km, najpierw możesz powspinać się na mniejsze szczyty, niejako po drodze. Wybieraj w czasie wędrówki te góry, które są blisko siebie, a jak masz ochotę zaatakować coś po przeciwnej stronie, to po prostu obiecaj sobie za jakiś czas tam wrócisz 🙂

Pewnie widzisz tutaj odnośniki do kursów. Budując je starałem się i nadal staram się tworzyć ścieżki rozwojowe. Sprawdź kursy – być może pomogą Ci one przynajmniej w części zaplanować swoją wycieczkę po górach IT. Powodzenia!

By Rafał Kraik in Certyfikacja

SQL: SSIS: Pełny transaction log wywołany przez SSIS Server Maintenance Job

2019-05-03

Jeśli na serwerze z zainstalowaną usługą SSIS I bazą danych SSISDB znajdziesz job „SSIS Server Maintenance Job” w statusie failed, a w error logu dodatkowo odnajdziesz informacje o pełnym logu transakcyjnym tej bazy, to masz przed sobą nieco pracochłonny process, jednak sprawa jest do opanowania!

Skoro log transakcyjny się zapełnia to transakcje są za duże. Trzeba je więc zmiejszyć… Oto jak:

Zajrzyjmy najpierw do joba. Ma on 2 job steps:

Każdy job step to po prostu wywołanie procedury:

EXEC [internal].[cleanup_server_retention_window]

Procedury rozpoczynają się od pobrania parametrów:

SELECT @retention_window_length = CONVERT(int,property_value)
FROM [catalog].[catalog_properties]
WHERE property_name = ’RETENTION_WINDOW’

Oczywiście prarametry te wpływają na to ile danych będzie kasowanych. No więc, chyba mamy rozwiązanie!

Wystarczy odczytać aktualną wartość parametru np. „RETENTION_WINDOW”, zamapiętać ją (bo na koniec chcemy wrócić do oryginalnej wartości), zmienić na większą (lub mniejszą w zależności od tego jaki parameter zmieniasz – ale zawsze chodzi nam o kasowanie mniejszej ilości danych). Po zmianie uruchomić procedure – nawet niekoniecznie z joba, można po prostu uruchoamiać wybraną procedure I możliwości są dwie:

-jeśli się udało – zmieniamy wartość parametru na bliższą wartości oryginalnej

-jeśli się nie udalo – zmieniamy wartość parametru na dalszą od wartości oryginalnej

 

 

By Rafał Kraik in SQL

Windows Server: Cluster: Disk problem: Clear-ClusterDiskReservation

2019-04-27

Podczas przełączenia clustra windows 2016 stało się coś dziwnego. Wskutek z grubsze nieznanej przyczyny wypadł jeden z dysków. Sytuację udało się naprawić, cluster był już sprawny, ale jeden ze starych dysków clustra przestał być widoczny…

  • diskpart widziamontowania pod literę dysku pojawiał się błąd:
DISKPART> assign letter k
There is no volume specified.
Please select a volume and try again.
  • podobnie działo się przy korzystaniu z narzędzi graficznych – dysk był raportowany jako RAW i nie można było usyskać dostępu do jego danych
  • podczas dodawania dysku do available storage pojawiał się komunikat mówiący, że nie ma dysków dostępnych do dodania

Czytaj dalej »

SQL: Uzyskiwanie nazwy instancji SQL w job SQL Agent

2019-04-25

Największą trudnością w automatyzowaniu administracji jest takie napisanie skryptu, które pozwoli uruchamiać dany skrypt w dowolnym środowisku bez modyfikacji.

Tym razem napisałem skrypt w powershellu, który można uruchamiać w jobie SQL Agent. Jedno z zadań tego skryptu było podłączenie się do BIEŻĄCEJ instancji SQL i wykonanie update na tabeli. Po cichu założyłem sobie, że kiedy agent uruchamia job typu powershell i wykonuje polecenie:

Invoke-SQLCmd $query

to połączenie zostanie wykonane do BIEŻĄCEJ instancji. Niestety. Połaczenie było wykonywane do DOMYŚLNEJ instancji. Kiedy więc mój skrypt uruchomił się na instancji nazwanej – dochodziło do błędu Login Failed…

Jest na to rada. Można korzystać z dostępnych zmiennych. W skrypcie powershell dodałem na początku:

$serverInstance = "$(ESCAPE_DQUOTE(SRVR))"

a potem wykonując update na bazie danych:

Invoke-SQLCmd $query -ServerInstance $serverinstance

I znowu wszystko się udało 🙂

SQL: Error 14274: Cannot add, update, or delete a job (or its steps or schedules) that originated from an MSX server

2019-04-24

A to ci dopiero!

Mój skrypt powinien utworzyć job-y jeden po drugim. Szczerze mówiąc, poszczególne joby zostały wyklikane w interfejsie graficznym, a potem zeskryptowane i połączone w jeden duży skrypt. Poczas uruchamiania tego dużego skrptu pojawiał się błąd:

Msg 14274, Level 16, State 1, Procedure msdb.dbo.sp_add_job, Line 132

Cannot add, update, or delete a job (or its steps or schedules) that originated from an MSX server.

Kluczowe w tym błędzie są następujące objawy:

  • Tworzenie joba za pomocą osobnego skryptu udaje się bez problemu
  • Tworzenie joba w ramach jednego skryptu kończy się błędem

To jednoznacznie wskazuje, że błąd jest związany z wartością zmiennych, które zmieniają swoją wartość podczas tworzenia pierwszego joba. Szczęśliwie tych zmiennych nie ma za wiele. Dodanie następującej linijki tuż przed procedurą sp_add_job rozwiązało problem:

SET @jobId = NULL

 

By Rafał Kraik in SQL

Powershell – uzyskiwanie nazwy dnia tygodnia

2019-03-29

Chcesz wydobyć z daty nazwę dnia tygodnia? No problem!

Zobacz następujące propozycje:

PS C:\> get-date -format "dddd"
piątek
PS C:\> get-date | select -expand dayofweek
Friday
PS C:\> (get-date).DayOfWeek
Friday
PS C:\> (get-date).ToString("dddd")
piątek

Teraz wynik takiego polecenia wystarczy zapisać do zmiennej i gotowe, np.:

$dayOfWeek =  (get-date).ToString("dddd")
By Rafał Kraik in Power Shell

Kurs MS Excel Tips & Tricks – za darmo przez pewien czas ;)

2019-03-27

Od dzisiaj na platformie Udemy jest dostępny nasz nowy kurs „MS Excel Tips & Tricks

Jak zwykle przez pewien czas kurs jest dostępny za darmo. To takie „dziękuję” za wszystkie porady znajdowane na blogach, forach, filmach w chwili kiedy sam nie potrafię sobie z czymś poradzić.

A co w tym kursie? Dokładny spis treści znajduje się poniżej. Do każdego filmu do dyspozycji jest zadanie do samodzielnego rozwiązania razem z plikami ćwiczeniowymi, jeśli akurat są potrzebne. Jeśli więc masz ochotę – zapraszam do nauki! Czytaj dalej »

By Rafał Kraik in Aktualności