Masters Academy Go courses project for season 2017/2018
Terms and conditions
Цей документ визначає та декларує чим є курси з Go які проводить Masters Academy в 2017-2018 рр.
Курси проводяться Masters Academy, на безоплатній добровільній основі.
Метою проведення курсів є допомога зацікавленим особам у вивченні основ мови програмування Go.
Курси є добровільною освітньою ініціативою, метою якої є донесення корисної інформації у зручний для обох сторін спосіб, із орієнтацією на самомотивованість відвідувачів, обопільну цікавість процессу та взаємне збагачення та обмін досвідом.
Курси не є засобом отримання сертифікату будь-якого вигляду, студентам які особливо відзначились можуть бути виписані рекомендаційні листи від викладачів, за підписом викладача.
На курсах особа, яка їх проводить, по окремих питаннях подає суб’єктивно забарвлену інформацію на власний розсуд, користуючись здоровим глуздом та власним досвідом.
Кінцевою метою курсів є максимально можлива передача досвіду студентам для їх подальшого професійного зростання та розвитку. У якості втілення досвіду приймається проект, програмний код якого написаний студентом, самостійно чи в групі, дозволить будь-кому скласти враження про опанування студентом мови програмування Go та відпоівідного інструментарія.
Курси не передбачають проведення заліків, іспитів та вручення дипломів. Нашою метою є не виконання студентом формальних процедур, а досягнення ними певного рівня професійності.
Доступ до курсів можуть отримати всі бажаючі, адекватні та розсудливі особи, із мінімальними навичками програмування. Від студентів очікується мотивованість, готовність задавати питання та самостійно визначати яка саме допомога може бути надана викладачами.
Ми не дитячий садочок та не школа, викладачам не цікаво чути відмовки, чому студент не зробив домашнє завдання, і тому метою студента є зацікавити викладача у передачі досвіду, ми всі дорослі люди )
Заняття проводитимуться згідно із графіком, про зміни в графіку повідомлятимемо ASAP, але можливі перенесення занять через об’єктивні обставини.
Студент має з самого початку усвідомити, що все, що він отримає від курсів на 99% залежить від нього.
Приходьте налаштовані конструктивно, невимушено та зацікавлено. Вчитися - весело.
Для отримання оновлень кожен слухач має слідкувати за даним репозиторієм, через розсилку будуть повідомлятися тільки найбільш загальні речі.
Завдання мають надаватися на перевірку:
в кодуванні UTF-8
мова коментарів - виключно англійська
перевід строки - Unix (LF)
Всі запитання, які стосуються курсів, задавати у групі Facebook.
Project structure
homeworks - Папка із результатами виконання домашніх завдань. В цій папці у кожного відвідувача має
бути створена своя папка, із результатами. Папка має бути створена за допомогою засилання в цей
проект pull request. Ім'я папки має бути створене за шаблоном типу name.surname_githubusername.
Setup environment for your OS by installing Go language from here and compile simple console "Hello World" application featuring name of your homework folder (using same template name.surname_githubusername).
Example of application output: Hello World from vitalii.hurin_VitaliiHurin
This homework should contain source code and compiled binary file sent to repo via pull request until 29.10.2017 15:00.
Как и говорил на занятии - вот вам необязательная домашка.
На этот раз у вас есть шаблон - https://github.com/MastersAcademy/go-course-2017/tree/master/templates/homework6 . Скопируйте эту папку в свою и начинайте работать с этими файлами.
В шаблоне есть функция - BrutSha256, вам нужно ее реализовать.
Кроме того, скорость выполнения этой реализации будет измеряться, и вы сможете посоревноваться(у кого самый быстрый алгоритм 🙂)
Всю реализацию не обязательно писать в мейн файле, можете создавать свои пакеты и их вызывать с функции BrutSha256.
Детали. Есть такое понятие хеш функция и конкретная ее реализация SHA256. Ее реализация есть в стандартной библиотеке go (crypto/sha256).
SHA256 используют только в одну сторону (нельзя просто взять и получить данные, которые были использованы для получения хешсуммы).
Вам необходимо найти те данные, которые были использованы для получения хешсуммы, имея при этом длину этих данных и символы которые могут содержаться в этих данных.
Одна из реализаций (единственная?) - это просто перебрать все возможные варианты.
Implement a program for printing two half-pyramids made of special symbol (for example, #) of a defined height with two spaces between them. For example, for height 4 it should print this:
The height should be defined as a variable in the program source code. By default it can be 4, but program has to work with any positive integer >=2 as a height.
The console output of the program should print the value of the height and these half-pyramids.
This time your pull request should contain only source code of your implementation and has to be sent to repo until 05.11.2017 15:00.